mac下python打包windows脚本_python程序打包(windows/mac os)

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官网看了,上面是这么说的:

5fcdb9f38a66?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

地址: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的窗口,然后系统就会提示错误,请问应该怎么解决呢?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值