【问题标题】:Getting error when using pynput with pyinstaller将pynput与pyinstaller一起使用时出错
【发布时间】:2020-12-20 05:17:15
【问题描述】:

我的一个朋友让我给他写一个程序,我使用 pynput 来处理一些输入和其他功能。当我使用 pyinstaller 将程序转换为可执行文件时,启动可执行文件会给我这个错误: File "site-packages\pynput\keyboard\__init__.py", line 31, in <module> File "site-packages\pynput\_util\__init__.py", line 82, in backend ImportError [11492] Failed to execute script friend_project

我已经尝试使用pyinstaller命令pyinstaller --onefile friend_project.py,也使用auto-py-to-exe来运行它。

将 pyinstaller 与 pygame 或 pyopengl 等其他模块一起使用不会出错,但这个模块会出错。 使用 python inturpeter 自己运行脚本可以正常工作,但我更希望它是一个 exe,这样我就可以把它交给他,而他不需要 python 来运行它。

【问题讨论】:

  • 您在构建 exe 时是否尝试过隐藏导入?
  • @SajanGohil 是的,但我会再试一次看看它是否有效。
  • 过去我可以使用 pynput 和 pyinstaller 来打包我的 py 文件。
  • @jizhihaoSAMA 你输入命令的具体方式是什么?如果不是,我使用的 pynput 版本可能有问题...
  • pyinstaller -F x.py。和你的一样。

标签: python-3.x pyinstaller pynput


【解决方案1】:

请回退到 1.6.8 版本的 pynput。 pip install pynput==1.6.8

【讨论】:

  • 谢谢。救了我的命。只是一个问题,我怎么会发现这样的事情。我认为 pynput 的版本有问题,但我怎么知道要恢复到哪个版本是否有支持的版本列表?
  • 也救了我的命。不过,我也想知道如何解决这个问题?
  • @Ruben 你可以看看我的答案来解决问题。
  • 嗨@May.D,似乎这也可以工作,但现在运行 1.6.8 工作得很好。我的 .exe 文件已经在运行。
【解决方案2】:

如果您运行的是 Windows,则需要将这些参数添加到命令行(第一次,之后它们将包含在生成的规范文件中)。

--hidden-import "pynput.keyboard._win32" --hidden-import "pynput.mouse._win32"

对于 Linux,请使用:

--hidden-import "pynput.keyboard._xorg" --hidden-import "pynput.mouse._xorg"

更多信息可以在Github issue找到。

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 2018-07-22
    • 2019-08-06
    • 2013-02-01
    • 2016-12-21
    • 2021-05-17
    • 2018-05-23
    • 1970-01-01
    • 2020-02-21
    相关资源
    最近更新 更多