py2app-python打包工具 作者:马育民 • 2020-09-05 19:38 • 阅读:11041 # 介绍 py2app是一个Python setuptools命令,它将允许您从Python脚本制作独立的Mac OS X应用程序包和插件。 py2app的目的和设计与Windows的py2exe相似。 注意:py2app必须在OSX上使用才能构建应用程序,它不能在其他平台上创建Mac应用程序 官方网址: https://github.com/ronaldoussoren/py2app # 安装 ``` pip3 install py2app ``` # 打包 ### 演示程序 test.py文件内容如下: ``` import tkinter as tk root = tk.Tk() root.title("Sandwich") tk.Button(root, text="Make me a Sandwich").pack() tk.mainloop() ``` ### 第一步:生成setup.py文件 执行命令: ``` py2applet --make-setup test.py ``` 在当前文件夹可以看到有`setup.py`文件生成 ### setup.py文件解释 内容如下: ``` from setuptools import setup APP = ['test.py'] DATA_FILES = [] OPTIONS = {'argv_emulation': False,} setup( app=APP, data_files=DATA_FILES, options={'py2app': OPTIONS}, setup_requires=['py2app'], ) ``` - DATA_FILES:是要包含的文件,如pyqt中的.ui文件 - OPTIONS:如果有第三方包、模块,写在这里 ``` OPTIONS = { 'argv_emulation': False, 'iconfile': 'Icon.icns', # 添加应用图标 'plist': { #添加应用信息 'CFBundleName': APP_NAME, 'CFBundleDisplayName': APP_NAME, 'CFBundleGetInfoString': "Making Sandwiches", 'CFBundleIdentifier': "com.metachris.osx.sandwich", 'CFBundleVersion': "0.1.0", 'CFBundleShortVersionString': "0.1.0", 'NSHumanReadableCopyright': u"Copyright © 2017," u" ......, All Rights Reserved" # 省略部分自定义内容 } } ``` 例子: ``` from setuptools import setup APP = ['main.py'] DATA_FILES = ["item.ui","mainframe.ui","adddialog.ui"] OPTIONS = { 'argv_emulation': False, 'includes': ['shiboken2','PySide2','PySide2.QtCore', 'PySide2.QtWidgets',"PySide2.QtUiTools","PySide2.QtGui"], } setup( app=APP, data_files=DATA_FILES, options={'py2app': OPTIONS}, setup_requires=['py2app'], ) ``` ### 第二步:打包 删除之前的 `dist`、`build`文件夹 执行下面命令,打包 ``` python3 setup.py py2app ``` 可以看到在当前文件夹生成`dist`、`build`文件夹,test.app在`dist`文件夹中 这种方式打包,python环境、已经用到的第三方库都打包到一起,一般将程序放在其他的mac电脑中,可直接运行 # 打包模式:别名模式 为了方法测试和开发,py2app 提供了“别名模式”,没有将完整的python环境、第三方库打包到app中,也就是说运行程序,完全依赖该电脑的python环境和第三方库 ``` python setup.py py2app -A ``` 感谢: https://www.jianshu.com/p/afb6b2b97ce9 原文出处:/show_1EF6ClsZ5L4P.html