相关疑难解决方法(0)

-m开关的目的是什么?

你能告诉我调用之间的区别吗?

python -m mymod1 mymod2.py args
Run Code Online (Sandbox Code Playgroud)

python mymod1.py mymod2.py args
Run Code Online (Sandbox Code Playgroud)

看来在这两种情况下mymod1.py被调用,sys.argv

['mymod1.py', 'mymod2.py', 'args']
Run Code Online (Sandbox Code Playgroud)

那么-m切换是什么?

python

147
推荐指数
5
解决办法
7万
查看次数

是否使用-m选项执行Python代码

python解释器具有-m 模块选项"将库模块模块作为脚本运行".

使用此python代码a.py:

if __name__ == "__main__":
    print __package__
    print __name__
Run Code Online (Sandbox Code Playgroud)

我测试python -m a得到了

"" <-- Empty String
__main__
Run Code Online (Sandbox Code Playgroud)

python a.py回报

None <-- None
__main__
Run Code Online (Sandbox Code Playgroud)

对我来说,这两个调用似乎是相同的,除非__package__在使用-m选项调用时不是None.

有趣的是,python -m runpy a我得到了与python -m a编译的python模块相同的a.pyc.

这些调用之间的(实际)区别是什么?他们之间有什么利弊?

此外,David Beazley的Python Essential Reference将其解释为"-m选项将库模块作为脚本运行,该脚本在执行主脚本之前在__main__模块内执行".这是什么意思?

python module package

87
推荐指数
3
解决办法
6万
查看次数

"pip install"和"python -m pip install"有什么区别?

我有一个本地版本的Python 3.4.1,我可以运行python -m pip install,但我无法找到要运行的pip二进制文件pip install.这两者有什么区别?

python pip python-3.x

34
推荐指数
3
解决办法
2万
查看次数

找不到Py.test命令,但安装了库

关于此主题的堆栈溢出已经有两个帖子; 但是,他们都没有解决或解决我的具体情况.

我已经安装了pytest via pip install pytest.我也能用Python导入库.

问题是,当我尝试py.test在终端中使用该命令时,我得到了py.test: command not found.

有没有人知道为什么我无法在终端中使用该命令?

编辑:它甚至显示为已安装的包:

$ pip list
cycler (0.9.0)
matplotlib (1.5.1)
numpy (1.10.1)
pip (8.1.0)
py (1.4.31)
pyparsing (2.0.7)
pytest (2.9.0)
python-dateutil (2.4.2)
pytz (2015.7)
scipy (0.17.0)
setuptools (7.0)
six (1.10.0)
tensorflow (0.5.0)
vboxapi (1.0)
wheel (0.26.0)
Run Code Online (Sandbox Code Playgroud)

terminal command pip pytest

14
推荐指数
4
解决办法
3万
查看次数

标签 统计

python ×3

pip ×2

command ×1

module ×1

package ×1

pytest ×1

python-3.x ×1

terminal ×1