【问题标题】:Pyinstaller 'failed to execute' scriptPyinstaller'未能执行'脚本
【发布时间】:2021-04-05 07:40:33
【问题描述】:

我是编程新手。我制作了一个python脚本。它在 pycharm 中运行没有错误。使用 pyinstaller 我尝试制作一个 exe。当我在 build 或 dist 文件夹甚至通过命令提示符运行 exe 时,它​​给了我错误“无法执行 Script Main”

我附上警告文件链接:

https://drive.google.com/open?id=1cDQ2KGId0B8K9Qi1bWPIhL55hQO0dM-z

请帮忙!

【问题讨论】:

  • 您可能希望将日志内容直接复制到帖子中,而不是依赖于您的谷歌驱动器。这样,如果您错误地从驱动器中删除了文件,您的问题仍然会保持完整:)

标签: python pyinstaller


【解决方案1】:

每个虚拟环境都有一个 pip 脚本。因此,当您安装 python 模块时,它会安装到 projectname\venv\Lib\site-packages 目录中。

当您从终端运行 pyinstaller 以生成可执行文件时,pyinstaller 会检查 Sys.path 中的依赖项。但该路径不包括 projectname\venv\Lib\site-packages 目录。因此 pyinstaller 找不到那些特定的依赖项。在这种情况下,它会给您警告。可以在可执行文件附近的“warnname.txt”中找到这些警告。

如何配置 pycharm 以运行 pyinstaller

  1. 首先您需要将 pyinstaller 添加到项目解释器中。
  2. 然后您需要设置运行配置。

脚本名称:python 脚本的路径

工作路径:项目位置

保留图像中的解释器选项。

  1. 运行 pyinstaller。您可以在 dist 目录中找到您的 .exe。

  2. 如果“未找到模块”错误仍然存​​在。您可以添加一个隐藏的导入挂钩并指定缺失模块的名称。导航到 Project Path\venv\Lib\site-packages\PyInstaller\hooks 并创建一个新的“hook-pandas .py"(hook-modulename.py) 脚本并列出隐藏的导入模块,如下所示:

hiddenimports = ['pandas._libs.tslibs.np_datetime','pandas._libs.tslibs.nattype','pandas._libs.skiplist']
  1. 然后再次运行 pyinstaller,它现在应该可以工作了。

【讨论】:

  • 嘿,谢谢!我的项目解释器是 C:\programdata\miniconda3\python.exe,我可以在解释器中看到 pyinstaller,如图 1 所示
  • 我没有进入第 2 步
  • 好的,我一直到第 3 点。如果我运行 exe,它会给出错误“无法执行脚本”,并且我会收到相同的警告消息。现在我必须在 hiddenimports 中添加这么多模块吗?
【解决方案2】:

我知道我是在 10 个月后写的,但我遇到了同样的问题,我知道解决方案。所以,也许有同样问题的人可以得到帮助。

如果您的脚本有任何其他文件,例如 db、csv、png 等,您应该将此文件添加到同一目录。这样你就可以解决我猜的问题。至少我的问题是这样解决的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2018-12-09
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多