python - 无法让 pyperclip 在 python3 上使用复制和粘贴模块
问题描述
眼镜:
- Python3.5
- 最新的 Pyperclip
- 安装了 xclip 和 python3-pyqt4
- 使用 ssh(Putty) 使用最新的 Raspian Stretch Light 连接到无头树莓派 2 模型 B
Error: pyperclip.copy('Hello world!')
File "/usr/local/lib/python3.5/dist-packages/pyperclip/__init__.py", line 612, in lazy_load_stub_copy
return copy(text)
File "/usr/local/lib/python3.5/dist-packages/pyperclip/__init__.py", line 297, in __call__
raise PyperclipException(EXCEPT_MSG)
pyperclip.PyperclipException:
Pyperclip could not find a copy/paste mechanism for your system.
For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
我还尝试卸载并重新安装模块和剪贴板程序。我搜索了 2 个小时来寻找答案并使用了所有这些,但它们没有用。我承认我是个菜鸟,但我不应该这么难做到这一点。
解决方案
剪贴板是 GUI 的一部分。但是你没有图形用户界面。所以没有剪贴板可以复制和粘贴。pyperclip 没有可访问的剪贴板,因此无论您如何尝试访问它,您都会失败。
您可以通过在 shell 上运行它来非常轻松地进行测试:
xclip
如果它说类似Error: No display: (null)
,那是你的问题。
如果你认为你应该有一个 GUI,因为你已经设置了一些东西,例如,通过 ssh 将 X11 隧道连接到桌面机器上的 X 服务器,但你仍然收到来自 的错误xclip
,那么问题是你'设置错误。最简单的检查是:
echo $DISPLAY
那是空的吗?那么您的会话对您的 X11 隧道一无所知。对于像 Super User 或 Unix 这样的站点来说,正确设置隧道确实是一个问题,而不是 Stack Overflow——一旦你得到修复,pyperclip
你的脚本应该就可以开始工作了。
至于你能做些什么……嗯,这取决于你最初尝试使用pyperclip
的原因。在无头系统上,没有地方可以复制数据,也没有地方可以粘贴数据,所以它不会特别有用。
例如,如果您尝试在同一台机器上的两个不同 Python 脚本之间共享数据,那么有比通过剪贴板传递数据更简单的方法——只需使用文件、管道、套接字等。甚至不需要具有复杂设置的第三方库。
推荐阅读
- java - 无法在 java web servlet 中直接调用 ActiveMQConnection 类
- sql-server - 仅投射为日期
- postgresql - PostgreSQL 升级到 12+ 将哈希连接更改为慢速嵌套循环
- c++ - 从异构大括号初始值设定项列表创建树
- python - 记录 - 如何将相同的记录器用作不同文件的类?
- excel - Excel `Data Levels` 以百万为单位的格式,没有十进制值 - Macbook
- c - 指向 char 和 printf 的指针
- python - 在 ubuntu 18.04 中安装系统范围的模块
- java - 当tomcat从tomcat 7升级到tomcat 9时,Drools ClassCastException
- java - 通过特定路由将 Java 客户端连接到 Node Express 服务器