Pyinstaller失败,因为在Windows上找不到pyconfig.h

时间:2018-04-26 13:43:51

标签: python python-3.x pandas pyinstaller

我尝试使用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。

2 个答案:

答案 0 :(得分:1)

git log -ppyconfig.h软件包的一部分。安装python-dev也可以解决您的问题。

请参阅此问题,以详细了解python-dev是什么:What is python-dev package used for

答案 1 :(得分:0)

好吧,所以我设法自己解决了这个问题。事实证明这是几个错误的组合。

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

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

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

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