在学习python的过程中,在IDE编写完成py项目,运行成功想要封装成exe,方便分享给不同的人即使别人没有安装python也可以使用。

封装的过程中遇到一些问题,记录一下,方便自己和他人查阅。

以经典教材的alien_invasion为例。编写完成后,在IDE环境下可以正常运行,使用pyinstall工具封装成exe,在py文件目录下进入cmd,例如E:\Python\Alien_Game>pyinstaller -F -w alien_test.py

在生成中dist文件夹下可以找到生成的exe文件,把依赖文件放入到同一目录下,打开exe出现已停止工作的问题。经摸索发现是因为

self.font=pygame.font.SysFont("none",36)     中默认none的问题,将其改为:

self.font=pygame.font.SysFont("SimHei",36)       解决相关问题。SimHei字体还可正常显示中文字符,防止出现中文乱码的问题。

pyinstall指令参考https://msd.misuland.com/pd/3223833238703184482

查询过程中还发现几个常见问题,整理如下:

1.多文件打包    https://www.cnblogs.com/jackzz/p/9431923.html

2.PyQt5安装有问题,通过pip安装,在一开始封装的过程中,为了方便看到问题,可以采用E:\Python\Alien_Game>pyinstaller -F -c alien_test.py的方式,通过控制台看到错误提示方便定位。

3.有些时候封装import了其他模块,pyinstaller找不到,需要将依赖路径添加上去 ,在指令最后加上-p address

4.生成exe文件注意路径,尽量使用相对路径,而且需要注意依赖文件和exe的相对位置,方便在不同的环境下移植运行。

记录如上,方便你我。

python程序封装成exe流程的更多相关文章

  1. 将Python脚本封装成exe可执行文件 转

    将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html  cx_freeze是用来将 Pyt ...

  2. python文件封装成*.exe

    python文件封装成*.exe文件(单文件和多文件) 环境:win10 64位 python3.7 原文: https://www.cnblogs.com/jackzz/p/9431923.html ...

  3. python + pyinstaller 实现将python程序打包成exe文件直接运行

    pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...

  4. 将 Python 程序打包成 .exe 文件

    1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...

  5. 将Python 程序打包成 .exe格式入门

    PyInstaller PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了. 它能够在 Windo ...

  6. python文件封装成*.exe文件(单文件和多文件)

    环境:win10 64位  python3.7 单*.py文件打包Python GUI:程序打包为exe 一.安装Pyinstaller,命令pip install Pyinstaller,(大写的P ...

  7. 如何将 Python 程序打包成 .exe 文件?

    有不少订阅本公众号的朋友都不是玩 Python,甚至都不是计算机相关专业的,当我给他们一个 Python 程序时,他们是完全不知道该怎么运行的. 于是我想是不是可以将我的程序打包成可执行文件,直接运行 ...

  8. python实战===python程序打包成exe

    推荐PyInstaller项目www.pyinstaller.org   安装方法: 先跑pip install pywin32再跑pip install pyinstaller即可 可用一句命令打包 ...

  9. 使用py2exe将python程序打包成exe程序

    近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...

随机推荐

  1. MyBatis框架之第一篇

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis.201 ...

  2. 关于Fastjson 1.2.24 反序列化导致任意命令执行漏洞

    环境搭建: sudo apt install docker.io git clone https://github.com/vulhub/vulhub.git cd vulhub fastjson 1 ...

  3. jQuery 源码解析(二十二) DOM操作模块 复制元素 详解

    本节说一下DOM操作模块里的复制元素子模块,该模块可以复制一个DOM节点,并且可选择的设置是否复制其数据缓存对象(包含事件信息)和是否深度复制(子孙节点等),API如下: $.clone(elem, ...

  4. slave_master_info和slave_relay_log_info中的Master_log_pos不一致

    最近在研究mysql的主从,发现一个问题,我在主库做任何修改时,在从库中只有slave_relay_log_info中的Master_log_pos在变化,而slave_master_info中的Ma ...

  5. C#爬虫例子

    公司需要抓取新闻,每次手动复制粘贴新闻,太麻烦了,业务人员就提出了要求,需要程序实现自动抓取新闻,因此就写了这个简单的爬虫程序. Html Agility Pack库 这是一个.NET下的HTML解析 ...

  6. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

    在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...

  7. python distutils 基本打包与发布

    distutils 实现对package 包的发布 import math def showMsg(a): return a * a * a a = 10 print('%d 的三次方是 %d' % ...

  8. (转)GitHub Desktop 拉取 GitHub上 Tag 版本代码

    转自:GitHub Desktop 拉取 GitHub上 Tag 版本代码 一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分 ...

  9. JPA连接Mysql数据库时提示:Table 'jpa.sequence' dosen't exisit

    场景 在使用JPA连接Mysql数据库进行数据持久化时提示: Table 'jpa.sequence' dosen't exist 注: 博客主页: https://blog.csdn.net/bad ...

  10. Python 元組 Tuple

    元組 Tuple 宣告 元組是用逗號分隔的一列值: >>> t = 'a',1,'b',2,'c',3>>> t('a', 1, 'b', 2, 'c', 3)&g ...