python程序打包发布方法整理

相关配置:

Anaconda 4.2.0 (64-bit)
Python 3.5.2

       写在前面的话,在开始打包之前,要创建一个新的文件夹,这个文件夹是你放.exe的地方,然后,把你的.py程序和程序里面用到的所有你创建的东西都拷贝到这个新建的文件夹里面。同时,里面关于文件路径的地方,都要改成当前路径。

如果只是单一的python程序,打包发布***.exe的步骤如下:

1.pip install pyinstaller

2.【Enter+R】打开cmd

3.cd 到新建的文件目录下

4.输入 pyinstaller -F ***.py

Ps: -F 是指打包成一个单文件

如果是打包PyQt5相关的程序,打包发布***.exe的步骤如下:

1.pip install pyinstaller

2.【Enter+R】打开cmd

3.cd 到新建的文件目录下

4.输入 pyinstaller --paths "D:\lqd\python\anaconda3\Lib\site-packages\PyQt5\Qt\bin" -Fw ***.py

如果没有 Qt\bin 的话,可以把Qt里面的bin文件复制拷贝到site-packages里面即可。如果在打包的过程中出现了 Cannot find existing PyQt5 plugin directories的报错,那么,1)找到你安装的anaconda目录下/Library/plugins路径下的PyQt5文件夹,将里面的pyqt5qmlplugin.dll拷贝一下;2)按照报错下面的一句话,比如说是下面这样的:

Paths checked: C:/Users/ray/qt5-x64-3.5/envs/_build/Library/plugins      按照这个里面的路径去C盘里面按顺序创建出来。最终,将刚才拷贝的pyqt5qmlplugin.dll放到里面,然后再来一遍,打包成功。

特别注意:如果你打包完成后发现在自己电脑上可以打开,在其他人电脑上打不开,报错如下:

        Failed to execute script xxx.      这时候,我们要将上面第4步中的指令w换成c,然后把刚才打包的东西都删掉,重新打包,这个c是可以让程序以终端窗口cmd的形式打开,这样在运行失败的时候,会在里面报具体的错误,根据具体的错误来修改即可。如果报错,那么建议用cmd打开exe文件,输入 .\***.exe即可。报错关于ImportError:Dell load failed相关的问题的话,找到报错的哪一行,看看是哪个包找不到,比如说是PyQt5这个包找不到,那么你就检查两个地方,第一检查pip list里面有没有PyQt5,第二检查conda list里面有没有PyQt5,如果这两个都有,再用python ***.py在cmd里面运行一下程序,如果也可以,那么直接更新PyQt5和Pyinstaller就可以解决这个问题。输入pip install -U PyQt5; pip install -U pyinstaller

Ps: -F 是指打包成一个单文件,-w 是指取消控制台效果。与普通的python程序发布不同,关于PyQt5的程序在发布的时候需要把pyqt5的相关动态链接库的路径输上,这样才能打开发布后的【***.exe】文件。如果打开后报错,缺少Qt platform,那么还需要把 “D:\lqd\python\anaconda3\Lib\site-packages\PyQt5\Qt\plugins”里面的platforms文件整个的复制到打包后的【***.exe】目录下。一般打包发布完之后,会有 dist 这个文件夹出现在新建的文件夹里面,里面有【***.exe】文件,把platforms文件复制到这里面即可。如果在程序里面使用了gif动态图,那么在发布的时候要再把imageformats文件复制到【***.exe】文件下。

我曾经跨过山和大海,也穿过人山人海,我曾经拥有着的一切,转眼都飘散如烟,我曾经失落失望失掉所有方向,直到看见平凡才是唯一的答案。
——韩寒《平凡之路》

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值