【问题标题】:Python3 -m /path/to/file is giving me an error, whereas python -m /path/to/file is notPython3 -m /path/to/file 给了我一个错误,而 python -m /path/to/file 不是
【发布时间】:2016-08-16 15:52:52
【问题描述】:

我已经在 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

我一直在阅读有关 -m 选项的 Python 2.X 和 Python 3.X 文档,但我还没有弄清楚为 3.X 所做的小改动如何在我的侧断了!

【问题讨论】:

    标签: python python-3.x module options mod


    【解决方案1】:

    用法不是:

    $ python -m path/to/file
    

    而是

    $ python -m package.subpackage.module
    

    -m 标志将当前目录添加到您的 Python 路径,然后它会在 Python 路径上查找模块以打开程序。例如:

    $ 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.
    

    【讨论】:

    • 是的,就是这样!谢谢!
    【解决方案2】:

    Python3 不会寻找 Python2 模块。您需要专门为 Python3 安装模块。

    举个具体的例子:在 Debian 下,包 python-numpy 安装到 /usr/lib/python2.7/dist-packages/numpy/,而包 python3-numpy 安装到 /usr/lib/python3/dist-packages/numpy/。 Python2 只会在/usr/lib/python2.7/dist-packages/ 中搜索; Python3 只会搜索/usr/lib/python3/dist-packages/

    照原样接受;不要试图修改本地安装的搜索路径,以免你会陷入可怕的混乱。而是在其 Python3 变体中重新安装每个单独的模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2012-11-12
      • 2012-05-31
      • 1970-01-01
      • 2015-11-23
      • 2022-01-03
      相关资源
      最近更新 更多