无法让 pyperclip 在 python3 上使用复制和粘贴模块

Mat*_*icz 4 python linux raspberry-pi

眼镜:

  • 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
Run Code Online (Sandbox Code Playgroud)

我还尝试卸载并重新安装模块和剪贴板程序。我搜索了 2 个小时寻找答案并使用了所有这些,但它们没有用。我承认我是个菜鸟,但对我来说做这件事不应该这么难。

小智 13

sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)

在终端上运行此命令,然后运行 ​​Python 测试。


aba*_*ert 7

剪贴板是 GUI 的一部分。但你不必一个GUI。所以没有剪贴板可以复制和粘贴。pyperclip 没有可访问的剪贴板,因此无论您如何尝试访问它,都将失败。

您可以通过在 shell 中运行它来非常轻松地进行测试:

xclip
Run Code Online (Sandbox Code Playgroud)

如果它说类似的东西Error: No display: (null),那就是你的问题。


如果你认为你应该有一个 GUI,因为你已经设置了一些东西,例如,通过 ssh 将 X11 隧道连接到台式机上的 X 服务器,但仍然收到来自 的错误xclip,那么问题是你我设置错了。最简单的检查是:

echo $DISPLAY
Run Code Online (Sandbox Code Playgroud)

那是空的吗?那么您的会话对您的 X11 隧道一无所知。正确设置隧道对于像 Super User 或 Unix 这样的站点来说确实是一个问题,而不是 Stack Overflow——一旦你解决了这个问题pyperclip,你的脚本就应该开始工作了。


至于你能做些什么……嗯,这取决于你最初尝试使用的原因pyperclip。在无头系统上,没有地方可以复制数据,也没有地方可以粘贴,所以它不会特别有用。

例如,如果您试图在同一台机器上的两个不同 Python 脚本之间共享数据,那么有比通过剪贴板传递数据更简单的方法——只需使用文件、管道、套接字等——甚至不需要具有复杂设置的第三方库。