python - .py 文件中导入的模块 pyperclip 在 Windows 命令提示符下运行时显示 ModuleNotFoundError
问题描述
我对 python 很陌生,对在我熟悉的 vs code 终端之外的任何地方执行 python 代码都是全新的。
我正在阅读并关注 Al Sweigart 的 Automate the Boring Stuff With Python Book,我在第 9 章,其中有一个创建多剪贴板的后续项目。
基本上,该项目正在创建一个程序,该程序使用 shelve、sys 和 pyperclip 模块将来自剪贴板的文本以字典格式存储在外部文件中。这是书中解释的:
该程序会将每个剪贴板文本保存在一个关键字下。例如,当您运行 py mcb.pyw save spam 时,剪贴板的当前内容将与关键字 spam 一起保存。此文本稍后可以通过运行 py mcb.pyw spam 再次加载到剪贴板。如果用户忘记了他们拥有的关键字,他们可以运行 py mcb.pyw list 将所有关键字的列表复制到剪贴板。
这是程序的作用:
检查关键字的命令行参数。如果参数是 save,则剪贴板内容将保存到关键字。如果参数是列表,则所有关键字都将复制到剪贴板。否则,关键字的文本将复制到剪贴板。
我对此完全陌生,所以从命令提示符执行有点吓人。我所做的是在命令提示符下使用 cd 进行导航。然后我输入“py.exe mcb226.pyw”(我的命名略有不同)。该文件确实运行但我收到此错误(在命令提示符中):
Traceback (most recent call last):
File "mcb226.pyw", line 10, in <module>
import pyperclip
ModuleNotFoundError: No module named 'pyperclip'
这让我很困惑,因为。这甚至意味着什么?我安装了 pyperclip(我通过 Anaconda 提示系统安装,我通过 Anaconda 运行 vs 代码)。我必须通过命令提示符安装它吗?
这是我在 mcb226.pyw 文件中的代码:
#! python3
# mcb.pyw - Saves and loads pieces of text to the clipboard
# usage: py.exe mcb226.pyw save <keyword> - Saves clipboard to keyword
# py.exe mcb226.pyw <keyword> - Loads keyword to clipboard
# py.exe mcb226.pyw list - loads all keywords to clipboard
import shelve
import sys
import pyperclip
path = 'C:/Users/adamt/Desktop/testfolder/mcb/mcb'
mcbShelf = shelve.open(path)
if len(sys.argv) == 3 and sys.argv[1].lower() == 'save':
mcbShelf[sys.argv[2]] = pyperclip.paste()
elif len(sys.argv) == 2:
# if the sys. argument list is 2, this must either be 'list' or to ask to get a variable, since its only mcb226.pyw list or mcb225.pyw spam
if sys.argv[1].lower() == 'list':
pyperclip.copy(str(list(mcbShelf.keys())))
elif sys.argv[2] in mcbShelf:
pyperclip.copy(mcbShelf[sys.argv[1]])
mcbShelf.close()
解决方案
pyperclip
应该安装在您运行代码的环境中。pyperclip
软件包未安装在site-packages
您用于运行脚本的 python 安装目录中。
要解决此问题,请在运行代码的终端上运行以下命令。
pip install pyperclip
推荐阅读
- excel - 使用单元格引用使用宏/VBA 进行搜索
- python - 无论这些函数运行什么,我可以同时运行两个函数吗?
- unity3d - 计算点击次数
- java - 防止 JPopupMenu 在单击时关闭
- php - 即使行存在,PDO Select 语句也会返回 false
- heroku - 无法使用高级调度程序安排 Heroku dyno 在特定时间重新启动
- ffmpeg - 使用 ffmpeg 或其他工具对旧视频进行抗锯齿过滤
- javascript - 按钮的 addEventlistener 不能与多个按钮一起正常工作
- r - 有没有办法使用 plm 或其他包从 panelAR 复制功能?
- amazon-web-services - Cloudformation 导出无法删除