我尝试使用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。
答案 0 :(得分:1)
git log -p
是pyconfig.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'],
...)