zoukankan      html  css  js  c++  java
  • python——pyinstaller生成exe基本使用和遇到的坑

    1、安装

    pip install pyinstaller

    2、常规操作

    在cmd界面(之前安装python或者anaconda的时候正确添加环境变量的话,是可以在cmd界面直接执行pyinstaller的)

    pyintaller [选项] py文件路径

    选项:

    -F 生成单个可执行文件,而不是生成一个文件夹,里面都是dll文件

    -w 去掉控制台窗口,如果是自己写的GUI程序,一般都要用这个,但如果是命令行程序,千万别用这个呀。

    -p 你自己自定义需要加载的类路径,如果正确添加环境变量的话,这个是不需要的。

    -i 指定可执行文件的图标,后面跟ico文件的路径即可

    示例:

    pyinstaller -F a.py

    3、坑1

    Cannot find existing PyQt5 plugin directories 
    Paths checked: C:/Users/ray/qtb-3.5-64/_b_env/Library/plugins 

    这个。。。原因我是感觉很迷。

    受到大佬启发:https://blog.csdn.net/weixin_43116379/article/details/82316163

    将pyqt5.dll和pyqt5qmlplugin.dll复制到报错的路径。虽然很迷为什么,但是确实解决了问题。(用资源管理器自带的搜索功能搜这两个文件)

     4、坑2

     UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 110: invalid continuation byte

    这个还是因为C语言(一般Python的底层是C)对中文的支持不太好。有些汉字无法正常编码。

    受到大佬启发 https://blog.csdn.net/qq_41185868/article/details/80599390

    1、删除所有中文注释

      (程序里面的中文可以不删,亲测用下面的方法可以正常生成exe文件)

    2、先在cmd界面中输入 chcp 65001,将控制台编码改成‘utf-8’,再直接使用pyinstaller -F a.py打包即可。

    亲测可用,感谢大佬!

    最终正常生成了exe文件,并且能正常运行。

    不过在这我要吐槽。用了pandas,requests,re这些模块之后。。。生成的exe文件竟然这么大。据说它是把所有库都编译了一遍加到exe文件里了。

    所以以后开发,能值引入函数的就只引入函数,尽量不要把整个库都引入。

  • 相关阅读:
    10、驱动中的阻塞与非阻塞IO
    8、Linux设备驱动的并发控制
    入职一个月考核学习
    5、映射的思考
    6、udev机制
    7、字符设备系统
    linux 内存管理之kmalloc、vmalloc、malloc、get_gree_pages的区别
    嵌入式笔试题(linux基础)
    驱动总结
    系统移植总结
  • 原文地址:https://www.cnblogs.com/albert-yzp/p/10186561.html
Copyright © 2011-2022 走看看