我在MacbookPro(10.9.5)上使用Python 3.4.2。代码来自Automate the Boring Stuff with Python by Al Sweigart当我尝试在python3中运行脚本时,我有一个奇怪的错误。 代码如下,但我不认为这是问题所在。它可能是模块路径问题,但不能100%确定我的调试。
我可以在Idle中运行代码但是我无法运行cmd行的代码,使用shebang或python3“脚本名称”运行。
我们可以在下面看到,pip3和python3都在/ usr / local / bin中。我们还可以看到安装了pyperclip模块。但是,从cmd行运行脚本时,它表示无法找到该模块,即使它已安装。
我在终端上运行了这个:
$ which pip3
/usr/local/bin/pip3
$ which python3
/usr/local/bin/python3
$ pip3 freeze | grep clip
pyperclip==1.5.24
$ python3 pw.py
Traceback (most recent call last):
File "pw.py", line 5, in <module>
import pyperclip
ImportError: No module named 'pyperclip'
但是,在空闲时,代码运行正常,没有找到模块错误:
>>> ================================ RESTART ================================
>>>
Password for email copied to clipboard
>>>
有谁知道我的路径可能会发生什么,或者我可以在我的脚本或终端中运行哪些其他cmd以确定发生了什么?
以下测试代码
#!/usr/local/bin/python3
# pw.py - an insecure password locker program
import sys
import pyperclip
PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6',
'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',
'luggage': '12345'}
account = "email"
if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print ('Password for ' + account + ' copied to clipboard')
else:
print ('There is no account named ' + account)
答案 0 :(得分:2)
一些解决方案:
export PYTHONPATH=//Library/Frameworks/Python.framework/Versions3.4/lib/python3.4/site-packages
在终端
中运行脚本之前OR 将其添加到您的代码中(开头):
import sys;
sys.path.insert(0, "Library/Frameworks/Python.framework/Versions3.4/lib/python3.4/site-packages")
OR(最简单,最有效,因为你只需要这样做一次)
将/usr/local/lib/python3.4/site-packages
链接到/Library/Frameworks/Python.framework/Versions3.4/lib/python3.4/site-packages
:
sudo ln -s /Library/Frameworks/Python.framework/Versions3.4/lib/python3.4/site-packages /usr/local/lib/python3.4/site-packages