我一直在使用python(Python 2.7.X)命令行上的mod选项,现在我正在切换到Python 3。
python -m path/to/file
现在,当我尝试执行相同的过程时,但使用Python 3,字面上是相同的行:
python3 -m path/to/file
我收到以下错误:
/usr/bin/python3: No module named path/to/file
我一直在阅读Python 2.X和Python 3.X关于-m选项的文档,我还没有弄清楚3.X的小改动如何在我的上面提到了上面提到的利用率一边破!
答案 0 :(得分:1)
用法不是:
$ python -m path/to/file
而是
$ python -m package.subpackage.module
-m
标志在路径上添加当前目录,否则它会查找模块以打开程序。例如,Python 2:
$ cat > foo.py
import sys
print(sys.version)
$ python -m foo
2.7.8 (default, Jul 28 2014, 01:34:03)
[GCC 4.8.3]
$ python -m /foo
/usr/bin/python: No module named /foo
$ python -m ~/foo
/usr/bin/python: No module named /cygdrive/c/Users/user/foo
$ python -m ~/foo.py
/usr/bin/python: Import by filename is not supported.
答案 1 :(得分:0)
Python3不会寻找Python2模块。您需要专门为Python3安装模块。
举一个具体的例子:在Debian下,python-numpy包安装到 $.ajax({
url: 'Test/UploadFiles',
type: "POST",
contentType: false,
processData: false,
data: fileData,
success: function(result) {
alert(result);
},
error: function(err) {
alert(err.statusText);
}
});
,而python3-numpy包安装到/usr/lib/python2.7/dist-packages/numpy/
。 Python2只会搜索/usr/lib/python3/dist-packages/numpy/
; Python3只会搜索/usr/lib/python2.7/dist-packages/
。
接受这个原样;不要试图修改本地安装的搜索路径,以免你陷入可怕的混乱。而是在其Python3变体中重新安装每个模块。