python项目打包(自定义dll) anaconda3+pyinstaller

        目前手上有一个python+pyqt的项目需要打包,所以查了一下打包的方法。下面介绍一下具体步骤:

python打包有很多方法,py2exe,pyinstaller等等(其实我也就知道这两种)。py2exe要自己写setup.py,

太麻烦。用了pyinstaller。

        1.用命令行安装pyinstaller:(要在工程所在的环境里安装)

pip install pyinstaller

        如何进入自己工程所在的环境,我使用anaconda3的tensorflow-cpu。而F:\python\label_tensorflow_cpu

就是我的工程所在目录。接着输入pip install pyinstaller,我安装过了,就不安装了。

python项目打包(自定义dll) anaconda3+pyinstaller_第1张图片

        2.然后用pyinstaller打包,就是运行以下命令。(pyinstaller的命令看这篇https://blog.csdn.net/jirryzhang/article/details/78881512)

pyinstaller -D -i ./icons/AutoLabel1.ico labelImg.py

         这时成功的话会显示successfully。

python项目打包(自定义dll) anaconda3+pyinstaller_第2张图片
         

         3.工程的根目录(F:\python\label_tensorflow_cpu)下面会多出两个文件夹:build & dist。

python项目打包(自定义dll) anaconda3+pyinstaller_第3张图片

         

         4.点开dist找到.exe,双击运行会发现报错或者闪退。这是缺少运行时所需的包。

         5.找到python的包,全部复制到根目录底下(F:\python\label_tensorflow_cpu\dist\labelImg)。

我的python包是在anaconda3下自己创建的tensorflow-cpu环境,所以去目录(D:\Anaconda3\envs\

tensorflow-cpu\Lib\site-packages\)下找。

python项目打包(自定义dll) anaconda3+pyinstaller_第4张图片

 

         6.然后双击dist中的exe(F:\python\label_tensorflow_cpu\dist\labelImg\labelImg.exe),即可运行。

python项目打包(自定义dll) anaconda3+pyinstaller_第5张图片

         

         此外我在看别人教程的时候,都要求安装pywin32(https://blog.csdn.net/qq_35203425/article/details/78568141

教程)。注意一点,pywin32有32位和64位之分,这个对应的是python的版本。

 

 

 

 

 

 

         

         对于自定义dll的打包,有很多坑,下面一一介绍:

坑一:自定义的dll,导入时用ctypes.windll.LoadLibrary(trackDllPath),这里的是我dll所在的位置。这里原本

           放的是相对路径,结果自己的电脑运行没有问题,在别人电脑上如何都不能运行。最后我将其放在根

           目录底下,即可运行。

坑二:如果你的dll生成txt文本等数据。这时根据你cmd的路径不同,它生成的位置也不同。如下面两张图,

           生成的txt就在不同的路径底下,就是由于在不同路径的cmd下打开。这个坑很隐蔽,我就是之前已经

           打包好可以使用了,突然发现找不到dll生成的txt了。

坑三:打包好的软件在其他电脑上运行,需要安装vs2015的库。这个坑了我很长时间。

python项目打包(自定义dll) anaconda3+pyinstaller_第6张图片

 

python项目打包(自定义dll) anaconda3+pyinstaller_第7张图片

         最后,最好把exe拉进cmd中运行,这样程序出错,可以在cmd中看到,不会闪退。还有其他新的错误

可以根据报错修改。

你可能感兴趣的:(打包,计算机,pycharm,labelImg,windows)