一、安装py2app打包工具
安装py2app 需要注意,安装全局环境下还是安装到PyCharm创建的项目下。(一般情况下建议py2app安装PyCharm开发项目的编译环境下,需要的第三方包环境已经配置好。)
安装命令:
sudo pip install py2app
二、生成app的配置文件setup.py
在终端窗口执行:(xxx.py是app的启动文件,就像其他程序的main文件一样)
py2applet --make-setup xxx.py
执行完上方命令后:终端会输出一段文字
$xx: Wrote setup.py
三、配置app的setup.py
初始化的setup.py
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['xxx.py'] #APP启动的py文件
DATA_FILES = [] #自写模块放在DATA_FILES列表中
OPTIONS = {} # 第三方库放在OPTIONS下的includes对应的列表中
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
下方举一个实例:
1.启动文件为xxx.py
2.项目内其他文件:test.py、 test2.py
3.导入第三方库:requests
配置文件如下:
#第一种配置
from setuptools import setup
APP = ['xxx.py'] #APP启动的py文件
DATA_FILES = ['test.py', 'test2.py'] #自写模块放在DATA_FILES列表中
OPTIONS = {'includes' : ['requests']} # 第三方库放在OPTIONS下的includes对应的列表中
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
#第二种配置
from setuptools import setup
APP = ['xxx.py'] #APP启动的py文件
DATA_FILES = [] #自写模块放在DATA_FILES列表中
OPTIONS = {
'includes' : ['requests'], # 第三方库放在OPTIONS下的includes对应的列表中
'iconfile':'Icon.icns', #APP图标
'plist': {'CFBundleShortVersionString':'0.1.0'} # APP 版本
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
py_modules=['test', 'test2'] #项目modules内容
)
其中icns图标的生成可以参考https://blog.csdn.net/Future_One/article/details/110194979
都配置完没问题,就可以打包app了
四、生成app
如果Mac电脑上有多个版本的Python,需要注意打包时Python版本当前打包的环境是否包含app需要依赖的lib和frame。
# 打包速度快,需要依赖库(自己开发可以使用这种方式)
python setup.py py2app -A
#给其他没有sdk的电脑使用,包括lib库。(没有安装sdk的电脑使用,需要去掉-A,将把所有的依赖全部打包。)
python setup.py py2app
如果执行完生成APP命令之后,终端显示如下:
前面编译过程内容省略……
说明编译成功,项目中没有问题 。
编译完成后,编译文件的目录下生成两个文件:
生成build和dist,其中app执行文件就在dist目录下