# py2app **Repository Path**: deepin-opensource/py2app ## Basic Information - **Project Name**: py2app - **Description**: 将py代码打包成应用的项目 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/deepin-opensource/py2app - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 2 - **Created**: 2021-04-07 - **Last Updated**: 2024-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # py2app ## 0、介绍 本人从事少儿编程行业,小孩子们一般最开始学的是scratch,后面开始学习Python,然后C++。 我目前开源的两个仓库主要功能分别如下: | 序号 | 模块名称 | 介绍 | 连接 | | ---- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | 1. | sc2py.py | 存放了一些sc的项目,由老师们移植成Python代码,主要用的是pygame、pgzero、cpgzh,目的是帮助老师们快速开发课程以及学生们对比学习。 | [https://gitee.com/fensl/sc2py](https://gitee.com/fensl/sc2py) | | 2. | py2app.py | 用于打包python项目,不光可以用于pgzero的作品,自己写的其他脚本也可以用它来打包,目前只对pgzero和cpgzh库做了特殊优化。如果朋友们发现有些项目打包不正常,请与我联系,我们再做特殊优化和支持。 | [https://gitee.com/deepin-opensource/py2app](https://gitee.com/deepin-opensource/py2app) | 本仓库是将py代码打包成应用的项目,运行效果如下图: ![](img/运行效果.gif) ## 1、软件架构 python+guizero+pyinstaller ## 2、安装教程 - 虚拟环境方式安装依赖(推荐) 1. 安装pipenv: `python -m pip install pipenv -i https://mirrors.aliyun.com/pypi/simple --user` 2. 创建虚拟环境并安装依赖:`pipenv install `即可安装好相关环境。 - 自行安装依赖(方式): ```sh python -m pip install guizero -i https://mirrors.aliyun.com/pypi/simple --user python -m pip install pyinstaller -i https://mirrors.aliyun.com/pypi/simple --user ``` ## 3、使用说明 强烈推荐使用虚拟环境,打包出来会比较小,下面第3行就是进入虚拟环境的代码。 1. git clone https://gitee.com/deepin-opensource/py2app.git 2. cd py2app 3. pipenv shell(未使用虚拟环境的不需要这一步) 4. python py2app.py,首次运行可能会安装一些第三方模块,等着就行了,以后就不用了。 **由于Py打包的各种坑,一次打包成功的几率往往不大,所以打包时候做法如下:** 1. 开始打包时请 **关闭隐藏命令行选项**,如下图 ![](img/1.jpg) 2. 打包完成后在cmd中运行打包好的程序,有时会发现报错,如下图就表示少了`pyttsx3.drivers.sapi5`模块: ![](img/2.jpg) 3. 将缺少的模块写入到本程序最下面的输入框(如果存在多个,请以空格隔开,这里用其他模块代替了!),如下图: ![](img/3.jpg) 4. 再次打包,重复1~3的流程,直到打包成功为止,此时就可以 **开启隐藏命令行选项** ,如下图: ![](img/4.jpg) 5. 有时候打包速度会比较慢,可能跟图形化界面有关,所以新增生成打包脚本功能,点击即可生成一个`run.py`文件,运行他就可以打包了,速度会稍微快一点。 ![](img/5.png) 6. 特殊库支持这块属于是一个持续更新的东西,有些库不能够自动打包进来,需要特殊处理。后续随着我的使用,会添加一些别的东西,目前主要是pygame、pgzero、cpgzh的支持,如果你的作品不涉及这些,可以关掉能加快打包速度。 ## 4、更新日志 ### 2022-05-18 1. 发现pyinstaller还是有坑,不建议双击运行,可能会提示权限问题的报错 2. 拆分仓库,打包和sc作品解析移植分开 3. 修改文档介绍 ### 2022-04-05 1. 用py2app文件所在目录作为工程目录,可以双击运行,不会出现程序没有写文件权限问题。 2. 新增自定义打包后程序名称的功能,默认是未命名程序,选择`xxxx.py`文件后会自动使用`xxxx.exe`作为程序名称,当然你也可以选择完之后再自行修改。 3. 修改背景为纯白色。 ## 5、参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 6、特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)