美文网首页Python
python程序打包(windows/mac os)

python程序打包(windows/mac os)

作者: 尤樊容 | 来源:发表于2018-09-20 18:48 被阅读367次
    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官网看了,上面是这么说的:

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

    相关文章

      网友评论

        本文标题:python程序打包(windows/mac os)

        本文链接:https://www.haomeiwen.com/subject/isvnnftx.html