【问题标题】:Pyinstaller failing because pyconfig.h not found on WindowsPyinstaller 失败,因为在 Windows 上找不到 pyconfig.h
【发布时间】:2018-10-07 05:58:24
【问题描述】:

我正在尝试使用 PyInstaller 从 Python 脚本创建可执行文件,但出现以下错误:

30391 INFO: Loading module hook "hook-distutils.py"...
Unable to find "\AppData\Local\Programs\Thonny\Include\pyconfig.h" when 
adding binary and data files.

我只能找到在 Linux 上遇到此问题的人的实例,但我在 Windows 上。我尝试将一个名为 pyconfig.h 的空文件添加到给定的文件路径中。这允许 PyInstaller 完成,但生成的 .exe 文件只打印一些文本并立即关闭控制台窗口。

我成功地从另一个脚本创建了一个可执行文件,该脚本使用除了 pandas 之外的所有相同包,所以我认为这可能是问题所在。

我正在通过 Thonny 上的系统 shell 运行 PyInstaller。我的操作系统是 Windows 10,我的 Python 版本是 3.6.4。

【问题讨论】:

    标签: python python-3.x pandas pyinstaller


    【解决方案1】:

    好的,所以我设法自己解决了这个问题。原来这是几个错误的组合。

    创建一个空的pyconfig.h 文件确实解决了最初的问题。

    从命令行运行 exe 可以让我看到实际问题是什么。原来这是 pandas 模块中缺少的隐藏导入。

    我也忘了包含我的数据文件和 Chrome 驱动程序。所有这些问题都在我编辑 pyinstaller 规范文件时得到修复:

    a = Analysis(['script.py'],
             binaries=[('chromedriver.exe','.')],
             datas=[('data/datafile.xlsx','data')],
             hiddenimports=['pandas._libs.tslibs.timedeltas'],
             ...)
    

    【讨论】:

      【解决方案2】:

      pyconfig.hpython-dev 包的一部分。安装python-dev 也可以解决您的问题。

      查看此问题以了解更多关于 python-dev 是什么的信息:What is python-dev package used for

      【讨论】:

      • 我所做的是从已安装的 Python 中拉出一个类似的 pyconfig.h 文件。 [不是最佳做法...]
      猜你喜欢
      • 1970-01-01
      • 2017-06-30
      • 2018-09-18
      • 1970-01-01
      • 2016-08-01
      • 2018-02-16
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多