【问题标题】:ImportError: No module named 'Crypto' on a MacImportError:Mac 上没有名为“Crypto”的模块
【发布时间】:2017-09-13 21:30:07
【问题描述】:

情况如下:

mymachine:Systemtest user$ pip3 install --upgrade pycrypto
Requirement already up-to-date: pycrypto in /usr/local/lib/python3.6/site-packages
mymachine:Systemtest user$ echo $PYTHONPATH
/Users/user/Private/Space/Server:/Users/user/Private/Space/Client:/usr/local/lib/python3.6/site-packages
mymachine:Systemtest user$ python3 -c "import Crypto"
Traceback (most recent call last):
  File: "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'Crypto'

这是 Mac 的特殊功能吗?如何确保python3 使用Crypto 模块?

【问题讨论】:

    标签: python macos import


    【解决方案1】:

    python3 -m "import Crypto" 指示 Python 解释器导入名为“import Crypto”的模块。要测试导入模块,只需传递名称本身,例如

    python3 -m Crypto
    

    在这里做同样的事情会产生这个错误:

    python3 -m Crypto
    /usr/local/opt/python3/bin/python3.6: No module named Crypto.__main__; 'Crypto' is a package and cannot be directly executed
    

    这告诉您 Crypto 已安装(它找到了)——但它不是一个模块,它是一个包。 python3 -m &lt;module&gt; 导入提供的模块尝试执行它。包不能直接运行,所以这是行不通的。

    您可以通过传递导入命令来检查导入(就像您最初所做的那样,但使​​用-c 选项),例如

    python3 -c "import Crypto"
    

    更新:问题是旧版本 pycrypto 的安装损坏。删除并重新安装它解决了这个问题。

    【讨论】:

    • @Alex 更新了答案以解释这里发生了什么。
    • 谢谢,但现在我得到的错误是ModuleNotFoundError: No module named Crypto。我不是在开玩笑!
    • @Alex 你能试试python3 -c "import sys; print(sys.path)" — 看起来你的python3pip3 指向不同版本的Python
    • 您可以使用python3 -m pip install pycrypto强制安装相同的版本
    • ['', '/Users/adietz/Private/Space/Server', '/Users/adietz/Private/Space/Client', '/usr/local/lib/python3.6/站点包','/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python36.zip','/usr/local/Cellar/python3/3.6.2/框架/Python.framework/Versions/3.6/lib/python3.6', '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload ', '/usr/local/lib/python3.6/site-packages']
    【解决方案2】:

    使用-m 开关,您应该运行python3 -m Crypto。不需要导入。或运行python3 -c "import Crypto"

    【讨论】:

      猜你喜欢
      • 2013-02-11
      • 2014-05-05
      • 2019-04-29
      • 2017-01-12
      • 2019-11-12
      • 2020-05-11
      • 1970-01-01
      • 2015-08-24
      • 2015-03-18
      相关资源
      最近更新 更多