python打包成exe

因为自己的项目需要mysql的连接池,然后就搞了一个sqlalchemy,我之前是用pymsql
在配置完之后,发现自己import mysql 没有用了,于是就删了 ,然后打包的时候就告诉我说
pyinstaller no module named “pymsql”
我之前已经打包过测试过没有问题,再次打包只是添加了一些备注而已,唯一相关的就是下面的这个配置了,但是正常跑py文件的时候是没有问题的,所以又老老实实的把这个import 加上了…

db = create_engine(
“mysql+pymysql://” + config[‘user’] + “:” + config[‘passwd’] + “@” + config[“host”] + “:” + str(
config[‘port’]) + “/” + config[‘db’] + “?charset=” + config[‘charset’] + “”,
max_overflow=0, # 超过连接池大小外最多创建的连接
pool_size=10, # 连接池大小
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置)

原文链接2的报错啊 你有时候手速不够快你是真看不见啊 hhh
————————————————————————————————————
以下均为网上内容
原文链接:https://blog.csdn.net/qq_35203425/article/details/78568141
原文链接2:https://blog.csdn.net/slc1112/article/details/104234076
本来想这直接挂连接来着,但是想了想怕作者删除内容,于是就cv过来了,以下内容跟原链接一模一样,可能比原链接丑,可以直接去访问原链接

将python程序打包成exe可执行文件有多种方法,这里讲一种最简单最常用的方法,只需要使用pyinstaller命令即可。

一、环境
Windows 7或10 x64

Python 3.6.1

二、需要包
pyinstaller 3.3

pywin32

这里需要注意!!!

在网上找很多使用pyinstaller库将python程序打包成exe的方法都是需要python3.3版本以前的。而python3.6想要打包pyinstaller库不支持,但是经过很多轮尝试之后发现pyinstaller 3.3这个版本的包可以成功将python3.6版本的程序打包成exe。

还有一点需要注意,打包成exe都需要pywin32这个包,但是这个包很顽固,python2可以很好安装,但是python3安装时出现很多问题,需要下载本地安装。但是pywin32本地安装不像其它库直接运行python setup.py install就行,pywin32这个包需要下载一个exe文件的安装包然后点击运行才行。pywin32包连接:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/ 下载时需注意自己python是32位的还是64位的,比如我的是python3.6 32位,
python打包成exe

三、pywin32的安装
下载pywin32后,点击运行,会发现出现下面的界面:

python打包成exe

同样需要注意!!!!

很多同学到这个界面时,会报错,提示检测不到系统安装了python3.6!!!,而且不能手动添加路径。这个原因是你的python3.6不在系统的注册表中,所以需要写一个脚本把python加入到系统注册表,脚本文件sys.py在这:

(地址:https://download.csdn.net/download/qq_35203425/10123871)。

简单运行该sys.py程序后,就能添加python3.6到系统注册表了。下一步就是安装pywin32这个包了,还是像上面,运行该exe包,这时候就能出现上面那个能检测到python目录的界面,一直点击下一步,完成。

四、pyinstaller 3.3安装
直接用pip安装的pyinstaller是3.2.1版本(我这是17年11月份的情况,后来可能自动安装更高版本),但是pyinstaller 3.2.1不能打包成exe,会出现很多溢出错误。所以需要更新包,网上很多人说去github上下载最新版的pyinstaller,地址:https://github.com/pyinstaller/pyinstaller,下载后解压安装运行该包,然后将其中的PyInstaller 文件夹 复制到你安装pyinstaller的相应目录Python36\Lib\site-packages,进行替换。

但是!!!!我按照上述说法还是不行,最后我发现我的pycharm里说明了pyinstaller有新版本3.3,这时候我就,选中pyinstaller包,然后点击右边的向上箭头,就能升级为3.3版本了,下面就是我的包:

python打包成exe

五、打包自己的py成exe
真是万事俱备只欠东风,都到这一步了,希望不会再出现错误。果然,一切顺利,成功打包python3.6项目成exe!!!下面是具体步骤:

首先建立一个python项目,然后到你的项目文件夹下,打开cmd,注意要是在该文件路径下,然后运行pyinstaller xxx.py即可。

1.建立xxx.py程序
python打包成exe

2.cmd运行命令

打开cmd,运行pyinstaller xxx.py命令(我的文件名为threeD.py,我是用git bash运行的该命令,cmd也一样),发现不再报错,运行成功!!!

python打包成exe

3.结果

python打包成exe

会发现该文件夹下多了很多文件,点击dist,进去能发现一个exe文件,点击运行即可(我的程序是一个画图)

python打包成exe

大功告成!!!!

4.优化

因为这个打包会出现很多需要依赖的文件,那如果我只想要一个exe怎么办呢?那么这时候就需要加一个-F参数就行:pyinstaller -F xxx.py就行了。

更多参数:
python打包成exe
python打包成exe

然后看自己文件夹dist下的exe文件:

python打包成exe

发现原来那些依赖配置什么都打包到exe中了,所以这个exe比上一个图中的exe要大,但运行结果都是一样的。关于pyinstaller还有很多有趣的东西,比如设置好看的ico图标等,期待你的发现。

补充:如果是安装了anaconda,那么Pyinstaller就很好安装,因为anaconda里面包含很多日常需要的包
————————————————
版权声明:本文为CSDN博主「Mr番茄蛋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35203425/article/details/78568141

在用pyinstaller打包python编写好的程序时,遇到了一些问题,其中有一个是no module named 'pkg_resources.py2_warn’

python打包成exe

经过一些探索后,找到了解决方法:
1.先用pyinstaller -D(F) xxx.py生成一下(不一定能正常运行)
2.(关键)经过第一步之后,目录下有个.spec文件,用记事本打开,里面有个hiddenimports,在这条里面加上pkg_resources.py2_warn

python打包成exe

3.再次用pyinstaller,注意这时候输入的命令是pyinstaller -D(F) xxx.spec
4.经过步骤2就可以解决这个问题,若仍然提示no module named XXXXX ,则再次写入到hiddenimports
5.需要经过几次调试,建议先用-D处理没问题之后再-F。

经过网上查询还有另一种解决方法:
1.pip uninstaller setuptools
2.pip installer setuptools==44.0.0
(不过这种方法对setuptools进行降级处理,可能有些功能不能使用)

经过这两种方法,程序可以正常运行。
————————————————
版权声明:本文为CSDN博主「爱电脑的小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/slc1112/article/details/104234076

)