Pyinstaller的下载安装相当简单,Windows和Ubuntu在命令行中直接pip一下就可以了,
pip install pyinstaller
CentOS中还需要事先安装一下依赖的包:
#在安装过程中需要安装gcc和zlib
yum install zlib-devel gcc -y
#然后安装pyinstaller的过程需要wheel
pip install wheel
#最后进行pyinstaller的安装就没问题了
pip3 install pyinstaller
但是在程序打包过程中遇到了很多问题,有些问题非常容易解决,但是有两个问题纠缠了很久,所以在这里记录一下,希望能帮到同样遇到这类问题的你。
问题1、运行打包好的程序出现下面警告提示:
WARNING: file already exists but should not: /tmp/_MEIy2j282/torch/_C.cpython-38-x86_64-linux-gnu.so
WARNING: file already exists but should not: /tmp/_MEIy2j282/torch/_dl.cpython-38-x86_64-linux-gnu.so
解决方法:打开你打包过程中产生的.spec文件,在第20行左右的位置,添加如下几行内容:
for d in a.datas:
if '_C.cpython-37m-x86_64-linux-gnu.so' in d[0]:
a.datas.remove(d)
break
for d in a.datas:
if '_dl.cpython-37m-x86_64-linux-gnu.so' in d[0]:
a.datas.remove(d)
break
问题2、运行打包好的程序出现下面警告提示:
有好多文章采用的解决办法是更换torchvision的版本,但是我没用过,怕好多东西不能用胆小的我选择的保守修改,还真让我改好了,可喜可贺呀~
解决方法:找到警告中文件image.py和_jit_internal.py,分别将这两个文件中的warn这一行注释掉,并加入a=1来占位,防止程序出错。
虽然警告并不影响程序运行结果,但是有警告看着就好烦呀!!!!!!!
哈哈哈哈~
现在解决啦,记录又一次成功~