【问题标题】:Cant get pyperclip to use copy and paste modules on python3无法让 pyperclip 在 python3 上使用复制和粘贴模块
【发布时间】:2019-01-10 17:34:54
【问题描述】:

规格:

  • 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 个小时来寻找答案并使用了所有这些,但它们没有用。我承认我是个菜鸟,但我不应该这么难做到这一点。

【问题讨论】:

  • 您是否设置了一些东西,例如,通过 ssh 将 X11 隧道连接到桌面上的 X 服务器?
  • 另外,你想用剪贴板做什么?在无头系统上,无需复制或粘贴任何内容。

标签: python linux raspberry-pi


【解决方案1】:

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

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

xclip

如果上面写着 Error: No display: (null) 之类的内容,那就是你的问题了。


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

echo $DISPLAY

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


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

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

【讨论】:

  • 它是最新版本的 light 操作系统,当我回显显示时它给了我一个空白行,但我目前正在下载最新的 raspian 完整操作系统,并会在我测试时回复你。我也不希望有一个 gui 原因永远不会设置一个。
  • @MatthewMankiewicz 我不知道前半部分是关于什么或为什么相关。但是,如果您没有 GUI,那么您希望剪贴板做什么?照原样,你要求做的只是没有意义。但我确信您正在尝试做一些非常有意义的事情,如果您能解释它是什么,我们可能会告诉您实现它的方法。
  • 我只是使用树莓派作为 Python 编程环境。我打算使用 pyperclip 复制 msg hello world 然后使用 pyperclip 将其粘贴到 cmd 行
  • @MatthewMankiewicz 您使用 Cttl-V 粘贴到命令行的内容或任何不是来自 rpi 剪贴板的内容,它来自您的 Windows 剪贴板通过 Putty。在 rpi 上运行的代码不会对此产生影响。
  • 我的意思是我想在 pi 中使用 pyperclip.copy("Hello World") 并将其粘贴到 pi 中。因为 pi 应该复制其设置的 msg 并将其复制并粘贴到 cmd 行中。但是我已经确定缺少的 gui 可能是这里的问题。不过感谢您的回复!
【解决方案2】:
sudo apt-get install xclip

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

【讨论】:

    【解决方案3】:

    我似乎记得在我的第一个 Raspberry Pi 上遇到了同样的问题。尝试运行sudo apt-get install xsel。您可以阅读 here 的作用,但本质上它是 Pyperclip 可以使用的剪贴板实用程序。

    如果这不起作用,可能与您尝试通过 SSH 执行此操作有关,但这不一定是问题。

    【讨论】:

      【解决方案4】:

      您可能会收到一条错误消息:“Pyperclip 无法为您的系统找到复制/粘贴机制。请参阅https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error 了解如何解决此问题。”

      为了在 Windows、Mac 和 Linux 上同样出色地工作,Pyperclip 使用了各种机制来做到这一点。目前,此错误应该只出现在 Linux(而不是 Windows 或 Mac)上。您可以通过安装其中一种复制/粘贴机制来解决此问题:

      • sudo apt-get install xsel 安装 xsel 实用程序。
      • sudo apt-get install xclip 安装 xclip 实用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        相关资源
        最近更新 更多