ImportError:没有名为' Crypto'在Mac上

时间:2017-09-13 21:30:08

标签: python macos import

情况如下:

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模块?

2 个答案:

答案 0 :(得分:3)

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 <module>导入提供的模块尝试执行。包不能直接运行,所以这不起作用。

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

python3 -c "import Crypto"

更新:问题是旧版pycrypto的安装中断。删除并重新安装它修复了问题。

答案 1 :(得分:2)

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