
桌面应用打包
1.PyInstaller(最常用)
pip install pyinstaller# 打包成单个可执行文件pyinstaller --onefile your_script.py# 打包成单个文件且无控制台窗口(GUI应用)pyinstaller --onefile --windowed your_script.py
2.Py2app(macOS专用)
pip install py2apppy2applet --make-setup YourApp.pypython setup.py py2app
3.Py2exe(Windows专用)
from distutils.core import setupimport py2exesetup(console=['your_script.py'])
4.cx_Freeze
pip install cx-freezecxfreeze your_script.py --target-dir dist
移动应用开发
1.Kivy
from kivy.app import Appfrom kivy.uix.button import Buttonclass MyApp(App):def build(self):return Button(text='Hello World')MyApp().run()from kivy.app import Appfrom kivy.uix.button import Buttonclass MyApp(App):def build(self):return Button(text='Hello World')MyApp().run()
pip install kivybuildozer android debug # 打包成Android APK
2.BeeWare
pip install briefcasebriefcase newbriefcase buildbriefcase run

3.Python-for-Android(Kivy项目)
专门用于将Python应用打包成Android应用。
Web应用部署
1.Streamlit(快速数据应用)
import streamlit as stst.title("My App")st.write("Hello World!")
streamlit run app.py# 可部署到Streamlit Cloud, Heroku等平台
2.Dash(交互式仪表板)
import dashimport dash_html_components as htmlapp = dash.Dash(__name__)app.layout = html.Div("Hello World")
打包最佳实践
配置规范文件
from setuptools import setup, find_packagessetup(name="YourApp",version="1.0.0",packages=find_packages(),install_requires=['requests','pillow',],entry_points={'console_scripts': ['yourapp=main:main',],},)
使用虚拟环境
python -m venv venvsource venv/bin/activate # Linux/Macvenv\Scripts\activate # Windowspip install -r requirements.txt
打包一个GUI应用
# my_app.pyimport tkinter as tkfrom tkinter import messageboxdef main():root = tk.Tk()root.title("我的应用")def on_click():messagebox.showinfo("提示", "Hello World!")btn = tk.Button(root, text="点击我", command=on_click)btn.pack(pady=20)root.mainloop()if __name__ == "__main__":main()
打包命令:
pyinstaller --onefile --windowed my_app.py
桌面应用:首选 PyInstaller
移动应用:Kivy 或 BeeWare
快速原型:Streamlit 或 Dash
商业应用:考虑使用PyQt或wxPython搭配PyInstaller
选择哪种方案主要取决于目标平台、应用类型和性能要求。



