情况如下:
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
模块?
答案 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"