我是Python的新手,我正在读“用Python自动化无聊的东西”一书(https://automatetheboringstuff.com/chapter6/)。我在Password Locker项目上工作,并且在pyperclip模块上遇到了困难。我在Mac OS X Yosemite上运行Python 3.6.2。
当我尝试通过终端运行我的程序时,我收到以下消息:
Traceback (most recent call last):
File "./pw.py", line 8, in <module>
import sys, pyperclip
ModuleNotFoundError: No module named 'pyperclip'但是,我已经安装了pyperclip,当我尝试使用"pip3 install pyperclip“时收到此消息:
pip3 install pyperclip
Requirement already satisfied: pyperclip in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages它在Shell中运行得很好:
>>> import pyperclip
>>> pyperclip.copy('hello')
>>> pyperclip.paste()
'hello'除了实际的密码之外,我相信我的程序和书中的程序是一样的:
#! /usr/bin/env python3
# pw.py - An insecure password locker program.
PASSWORDS = {'email': '12345',
'blog' : '54321',
'luggage': '123456789' }
import sys, pyperclip
if len(sys.argv) < 2:
print('Usage: python pw.py [account] - copy account password')
sys.exit()
account = sys.argv[1] # first command line arg is the account name
if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print('Password for ' + account + ' copied to clipboard.')
else:
print('There is no account named ' + account) 我一直在试图找出为什么会发生这种情况,但还是弄不明白。再说一次,我对Python非常陌生,任何有帮助的见解都将不胜感激!谢谢!
发布于 2018-01-04 11:30:04
您提到pyperclip安装在
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
在脚本中,print(sys.path)并验证该目录是否可供您的程序导入。如果解释器和库仍然不匹配,可以考虑使用conda或virtualenv创建环境。
顺便说一句,请删除import行,并将两个新的import行放在shebang后面,这样它们就会出现在密码分配之前。这只是一种flake8风格的东西。
此外,考虑使用argparse或click,而不是读取sys.argv[1]。首先,你可以免费得到"--help“。
发布于 2018-01-12 06:17:12
在#! /usr/bin/env python中更改shebang,然后使用python2运行它。
发布于 2020-05-17 12:37:21
为了让python发行版安装到正确的环境中,我真的很费力。我用anaconda navigator安装了pythong。这一点,加上mac上默认的python,再加上一些其他的,让我陷入了艰难的境地。(可能与您面临的情况类似。
我的修复方法是找出我的IDE (Spyder4)使用的是哪个python解释器,然后从那里运行引用此位置的安装命令。
更简单地说:
pip install pyperclip变成了
/usr/local/anaconda3/bin/pip install pyperclip这似乎为我解决了这个问题。祝所有其他面临类似情况的人好运。
https://stackoverflow.com/questions/48087788
复制相似问题