zoukankan      html  css  js  c++  java
  • python程序封装成exe流程

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

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

    以经典教材的alien_invasion为例。编写完成后,在IDE环境下可以正常运行,使用pyinstall工具封装成exe,在py文件目录下进入cmd,例如E:PythonAlien_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

    • -F 表示生成单个可执行文件

    • -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!

    • -p 表示你自己自定义需要加载的类路径,一般情况下用不到

    • -i 表示可执行文件的图标

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

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

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

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

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

    记录如上,方便你我。

  • 相关阅读:
    进程和线程
    堡垒机初识--paramiko模块
    python三元运算
    python 遍历文件夹
    CentOs7安装rabbitmq
    logstash 中配置GeoIP解析地理信息
    Centos7单机部署ELK
    Nginx修改access.log日志时间格式
    nginx日志增加cookie信息
    socketserver多线程处理
  • 原文地址:https://www.cnblogs.com/xiang-wu/p/11606186.html
Copyright © 2011-2022 走看看