Windows上python程序打包
打包工具网上说的最多的就是pyinstaller,也有一部分在说py2exe,于是我就跟随人流选择了pyinstaller。
其实网上有好多相关的资料,但是我还是准备写一下,总有不一样的体验:
在网上下载一个python3.0以上的安装包安装以后,pip是肯定有的,除非自己手欠去做了设置,哈哈,那就从安装pyinstaller说起吧!
pip install pyinstaller
没错就是这么简单,安装完成以后还可以看看pip list
里面就会有你安装的pyinstaller。
- 这里有一点需要注意的,我用的是python3.6.6,我试过用python3.7.0,结果go die了,一Google是因为不支持python3.7.0,反正网上是这么说的,我换了个版本就好了,以后这个问题应该就回解决了,或者是因为我的python版本和pyinstaller版本不合适,我不确定,但是如果你也需要相关的问题,不妨多试几个版本,可能就可以。
然后运行:
pyinstaller -F -i logo.ico 你的文件.py
-F和-i我用了,也是使用的比较多的,
加上-F可以生成一个独立的exe文件,在dist文件中。
加上-i是给你的程序添加一个图标,在-i后加空格+文件名
还有很多相关的设置,可以参考官网,贴心的写上链接:https://pyinstaller.readthedocs.io/en/stable/usage.html
Mac os上python程序打包
这个是使用的py2app打包的,根据python官网上的推荐来的,下面是使用步骤:
为了得到了一个不带任何第三方包的“干净”的Python运行环境,我们需要先安装virtualenv虚拟环境:
virtualenv --no-site-packages venv
进入venv模式
source venv/bin/activate
如果需要退出venv模式,可以使用:
virtualenv
使用pip安装py2app(这个是官网的安装方法,会安装pip能安装的最高版本,但是这里有一个问题,下面会说,我这里需要使用gui,所以推荐使用第二种方法安装):
pip install py2app
第二种安装方法:
pip install -U git+https://github.com/metachris/py2app.git@master
生成setup.py文件:
py2applet --make-setup 你的文件.py
打包成app,开发模式:
python setup.py py2app -A
发布模式:
rm -rf build dist
python setup.py py2app
执行
./dist/你的文件名字.app/Contents/MacOS/你的文件名字
或者:
open 文件.app
注意:在开发的时候发现安装直接使用开发模式有时候会有点问题,如果开发模式有时候出一些奇怪的错误,你也可以直接使用发布模式来做,然后在app里面直接修改你对应的文件运行,无需重新打包。
还有一个重要的问题:如果使用上面的执行方式和直接双击app产生的结果不一样,那多半是路径的问题,可以去检查使用的路径或者文件运行路径。
版本问题:
这个东西我在用的时候有点怪怪的,我安装的py2app==0.17版本的,可是不能使用python自带的tkinter写GUI,一直报错什么_tkinter.os找不到,还是啥的,后来去py2app官网看了,上面是这么说的:
地址:https://py2app.readthedocs.io/en/latest/changelog.html
- 难道意思是不支持这个GUI框架,还是我理解错了,这里还要请大神解释一下。
然后我就在网上找到了这个给力的教程,他自己改了一版py2app,解决了那个错误,但是终端没有输出,调试很麻烦呀!
这里附上给力教程地址:https://www.jianshu.com/p/afb6b2b97ce9
这个是他翻译的别人的,挺好的。
-
需要使用图标的盆友,可以使用这个方法生成icns图标,网上那些在线的似乎都不太行https://www.jianshu.com/p/e74047f7cc91
-
这里还有一个问题想要试探性的问一下,期待能有回应:在tkinter的循环中添加一个pygame的显示循环,运行的时候就会出现两个窗口,这个时候,直接关闭tkinter的窗口,然后系统就会提示错误,请问应该怎么解决呢?
网友评论