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文件里了。

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

python——pyinstaller生成exe基本使用和遇到的坑的更多相关文章

  1. 小白学Python(19): Pyinstaller 生成 exe 文件

    python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块. 安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装 ...

  2. python脚本生成exe程序

    去年十一月换了新公司后,一直没闲着,马不停蹄地接不同的需求,一个版本一个版本的迭代,也没时间研究python了.十一休假归来,某日,老婆问金融量化需要学python吗?并分享了一个公众号文章,内容是吹 ...

  3. pyinstaller将python脚本生成exe

    一.下载pyinstaller 二.生成exe 下载pyinstaller 1.在C:\python27\Scripts目录下打开cmd界面,执行命令:pip install PyInstaller ...

  4. pyinstaller生成exe文件失败

    我的python是3.6,目前pyinstaller并不支持,有网友建议在Github上下载源码,用pyinstaller_develop文件夹替换pyinstaller安装位置下同名文件夹.这样做之 ...

  5. python3 pyinstaller生成exe文件过程问题解决记录

    1.使用pip安装pyinstaller 2.在cmd打开需生成可执行文件的python文件所在文件夹 3.使用命令pyinstaller -F -w **.py (代码中有import其他模块的,只 ...

  6. Python: pyinstaller打包exe(含file version信息)

    最近项目上一直都是用Spyder直接运行.py文件的方式来执行每日的自动化程序,每天都要手动去点击Run来执行一次,所以考虑把.py文件直接打包成exe,然后用windows的task schedul ...

  7. 利用pyinstaller生成exe文件碰到的一些问题及解决方法

    在“开源图像标注工具labelme的安装使用及汉化”这篇博客中,使用pyinstaller将labelme项目的入口python文件main.py打包,生成了main.exe文件,可以在Windows ...

  8. python脚本生成exe可执行文件

    1.先安装第三方插件: py2exe. Get py2exe from http://www.py2exe.org/ 在download里下载与自己python对应的版本 2.写一个测试python文 ...

  9. 利用pyinstaller生成exe之后,运行不能正常产生结果文件问题记录

    https://segmentfault.com/q/1010000011284617/a-1020000011493026 在此链接已解决问题,现在在这里在详细记录一次 问题描述: 利用pychar ...

随机推荐

  1. Struts2 第二讲 -- Struts2的入门

    搭建struts2环境时,我们一般需要做以下几个步骤的工作: 第一步:创建javaweb工程(这个很废话有木有) 第二步:找到开发Struts2应用需要使用到的jar文件.(这个很白痴有没有) 到ht ...

  2. javascript 六种基本数据类型转换

    javascript 六种基本数据类型转换 1.显式转换 通过手动进行类型转换,Javascript提供了以下转型函数: 转换为数值类型:Number(mix).parseInt(string,rad ...

  3. flask中的response

    1.Response 在flask中你想向前端返回数据,必须是Response的对象,这里和django必须是HttpResponse 对象一样, 主要将返回数据的几种方式 视图函数中return 字 ...

  4. meclipse6.5破解

    package com.test.ssh.common;   import java.text.DecimalFormat; import java.text.NumberFormat; import ...

  5. 关于echarts整合多个类似option

    最近项目里面遇到一些图表需要用echarts来做.而我之前只用过一次echarts,也只是做了一个简单的饼状图,并没有涉及到很多的配置.但是现在这个项目,这些图表需要自己配置很多东西.像什么多余的网格 ...

  6. C.Sum 2017 ACM-ICPC 亚洲区(西安赛区)网络赛

    题目来源:Sum 限制:1000ms 32768K Define the function S(x) for xx is a positive integer. S(x) equals to the ...

  7. sql server,mysql,oracle平时用法的区别

    由于工作的原因,上家公司一直使用的oracle,后来接触了的几个项目,既有使用mysql的又有使用sqlserver,自己在使用sqlserver及mysql要实现某功能时,经常要在网上找来找去,所以 ...

  8. is 和 isinstance的区别 and issubclass

    定义一个子类和父类 class A: pass class B(A): pass is print(type(b) is B) # 结果: True print(type(b) is A) # 结果: ...

  9. MySQL快速生成连续整数

    很多时候需要用到连续的id进行数据对比,如判断是否连续等问题.那么,生成连续整数的方式有多种,首先容易想到的是逐步循环,如果想生成1kw条记录,则需要循环1kw次进行插入,那么有没有其他方式呢,效率相 ...

  10. 分分钟教你学习GIt

    Git配置: $ git config --global user.name "awen" $ git config --global user.email "awen@ ...