Pycharm打包教程:电脑+ 手机全流程
2026/7/4 4:55:57 网站建设 项目流程

💡 阅读须知:我的所有文章免费。若在阅读时遇到VIP限制无法显示,可私信联系我


在 PyCharm 中完成从桌面端到移动端的打包,是 Python 开发者实现跨平台交付的核心技能。本文梳理了 EXE、APK、IPA 三种格式的标准化打包流程,修正了原稿中的环境误区与操作漏洞,补充了关键避坑细节,确保全程在 PyCharm 内可稳定复现。

⚠️核心前置提醒

  • 移动端打包不能直接用原生 Python 代码:必须使用 Kivy/Beeware 等跨平台框架重写 GUI,原生的tkinterPyQt无法适配安卓/iOS
  • iOS 打包仅限 macOS:Windows 无任何合规方案可生成 IPA,不要尝试第三方“Windows 打 iOS”工具,均为无效或恶意软件
  • Python 版本严格限制:Kivy + Buildozer 组合仅支持Python 3.8–3.11,3.12+ 存在兼容性问题,建议在 PyCharm 中创建专用虚拟环境
  • 所有命令均在 PyCharm 终端执行:无需切换外部命令行,确保环境与解释器一致

💻 一、电脑端 EXE/App 打包(Windows / macOS 通用)

核心工具:PyInstaller(PyCharm 终端一键操作,零额外配置)

1. 安装 PyInstaller

在 PyCharm 终端执行:

pip install pyinstaller
2. 标准打包命令

main.py为例:(main需替换为自己的)

pyinstaller -F -w --name MyApp main.py

表格

参数作用注意事项
-F打包为单文件体积较大,启动稍慢,适合分发
-w隐藏控制台窗口仅适用于 GUI 程序,脚本程序禁用
--name自定义输出文件名避免中文命名,防止路径报错
--icon=app.ico设置应用图标Windows 用.ico,macOS 用.icns
3. 输出文件定位
  • Windowsdist/MyApp.exe(双击运行,无需 Python 环境)
  • macOSdist/MyApp.app(双击运行,或终端./dist/MyApp.app/Contents/MacOS/MyApp
  • build/文件夹为临时缓存,可直接删除,不影响可执行文件

💡避坑提示
若打包后运行闪退,去掉-w参数重新打包,通过控制台查看报错信息;90% 的闪退源于缺失依赖或未正确包含资源文件,可通过--add-data参数补充。


📱 二、移动端打包通用准备(必读)

  • 框架选择:推荐Kivy + Buildozer,生态成熟、文档完善,适配安卓/iOS;
  • 中文乱码解决方案:Kivy 默认不带中文字体,禁止硬编码 Windows 字体路径(移动端无该路径),需将字体文件放入项目资源目录,使用相对路径加载;
  • 虚拟环境隔离:在 PyCharm 中为移动端打包创建独立虚拟环境,避免与桌面端依赖冲突。

🤖 三、安卓 APK 打包(Windows / macOS 通用)

1. 编写移动端适配代码(含中文修复)
from kivy.app import App from kivy.uix.label import Label from kivy.core.text import LabelBase import os # 使用项目内字体,兼容全平台 font_path = os.path.join(os.path.dirname(__file__), 'assets', 'msyh.ttc') LabelBase.register(name='CustomFont', fn_regular=font_path) class MyApp(App): def build(self): return Label( text="Python 跨平台应用", font_name='CustomFont', font_size=30 ) if __name__ == '__main__': MyApp().run()
2. 安装依赖(严格按顺序)
pip install kivy==2.3.0 pip install buildozer pip install cython==0.29.37 # Buildozer 强依赖指定版本 Cython
3. 初始化并修改配置
buildozer init

打开生成的buildozer.spec,必改项:

  • title = 你的应用名称
  • package.name = com.yourname.app(包名唯一,不可含中文/特殊字符)
  • android.accept_sdk_license = True(自动同意 SDK 协议,避免打包中断)
  • source.include_exts = ttf,ttc,png,jpg(包含字体与资源文件)
4. 一键打包 APK
buildozer android debug
  • 首次打包自动下载 Android SDK/NDK(约 2–3GB),耗时 10–30 分钟。
  • 成功后 APK 位于bin/目录,文件名格式为{package.name}-{version}-armeabi-v7a-debug.apk
  • 安装到手机:开启 USB 调试,通过数据线或文件传输安装,无需 Root。

⚠️Windows 专属注意
Windows 下 Buildozer 依赖 WSL2 或 Docker,若未配置会直接报错。建议优先使用 macOS/Linux 打包,或在 PyCharm 中配置 WSL2 远程解释器。


🍎 四、iOS IPA 打包(仅 macOS + Xcode)

1. 环境准备
  • Mac App Store 安装最新版 Xcode,打开一次并完成命令行工具安装;

  • PyCharm 终端执行

    pip install kivy-ios pip install cookiecutter
2. 构建 Kivy iOS 工具链
toolchain build kivy

此步骤编译 Kivy 及依赖库为 iOS 静态库,耗时 30–60 分钟,勿中断。

3. 生成 Xcode 工程
toolchain create MyApp /path/to/your/main.py

生成MyApp.xcodeproj,自动包含 Kivy 运行时与资源文件。

4. 真机测试与打包
  • 用数据线连接 iPhone,Xcode 中选择设备为目标;
  • 签名设置:个人 Apple ID 可免费真机调试(7天有效期),正式上架需付费开发者账号;
  • 点击 ▶️ 运行按钮,自动编译、安装到设备;
  • 导出 IPA:Xcode → Product → Archive → Distribute App → Development 导出测试包。

💡iOS 关键限制
免费 Apple ID 签名的应用仅本机可用,无法分发给他人;Kivy-iOS 不支持所有 Python 第三方库,仅能使用纯 Python 或已适配 C 扩展的库。


最佳实践建议

  • 桌面端优先用 PyInstaller,移动端优先用 Kivy + Buildozer
  • 所有资源文件(字体、图片、配置)统一放在assets/目录,使用os.path动态拼接路径,杜绝绝对路径
  • 打包前先在 PyCharm 中本地运行验证,确保无误再执行打包命令

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询