我正在尝试使用pyinstaller创建我的Python程序的单个exe文件,但是在该过程完成后,无法运行该exe。查看该过程的控制台输出后,可以看到以下内容:
126946 INFO:寻找动态库
我收到几百行“警告:找不到lib:api-ms-win-crt- dll或pyd的保存路径的任意数量的.dll依赖项
我使用默认配置安装了Python,并且始终使用pip安装了Python软件包。Pyinstaller应该很简单,不需要很多额外的步骤,例如创建setup.py文件,但是似乎缺少了一些东西,它告诉pyinstaller在哪里寻找那些缺少的库。有没有解决方法?甚至我应该使用更好的python到exe编译器?
编辑:为了提供更多信息-我的程序由5个模块组成,在这些模块中,我使用了三个第三方程序包,包括:PyQt5,pandas和ArcGIS。另外,我还有两个sql文件,它们也是程序的一部分。我觉得pyinstaller只能编译简单的脚本,并且通过使用其他程序包,模块和外部文件,它就是用来处理这种事情的。
我进行了一系列更改,以使构建编译并正确运行。
首先,pyinstaller缺少熊猫的“挂钩”文件,因此必须手动创建一个。对我而言,挂钩文件夹位于此处:“ C:\ Users \ natha \ AppData \ Local \ Programs \ Python \ Python36-32 \ Lib \ site-packages \ PyInstaller \ hooks”
在该文件夹内,我创建了一个名为hook-pandas.py的文件,该文件的唯一内容是一行:hiddenimports = ['pandas._libs.tslibs.timedeltas']
我确实安装了Windows 10 SDK,但是我不确定这是否只是问题的一部分,或者是否会影响到问题。我的程序由多个模块组成,因为我喜欢在不同的文件中分离不同类型的进程。但是,为了简化起见,我将所有代码组合到一个.py文件中,而只有另一个文件包含我的PyQt5 / Qt Designer自动生成的GUI代码。我删除了所有读为
from x.y import z
我在一些pyinstaller无法识别这些东西的构建中收到错误。所以我让事情很简单
import PyQt5
最后,当我使用-p命令编译内部版本时,添加了两个文件路径。一个指向我程序的根目录,这是另一个模块(PyQt5模块)的保存位置,第二个路径是“ C:\ Users \ natha \ AppData \ Local \ Programs \ Python \ Python36-32 \ Lib” \ site-packages”。一旦完成这些操作,编译即可正常完成,并且构建可以完美运行。总而言之,成功的关键在于:
-如果脚本中正在使用熊猫,请确保有一个hook-pandas.py文件。-确保hook-pandas.py文件包含以下行:
hiddenimports = ['pandas._libs.tslibs.timedeltas']
-并且确保使用-p命令将pyinstaller定向到保存自定义模块和所有python软件包的位置。我的-p命令如下所示:
-p C:\Users\natha\Desktop\Python_Projects\CompEval\code:C:\Users\natha\AppData\Local\Programs\Python\Python36-32\Lib\site-packages
注意冒号将两条路径分开。
我认为这些是要检查的主要内容,次要的是
from x.y import z
键入import,以避免这些。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句