python文件打包成exe
in Python with 0 comment
Read:185

python文件打包成exe

in Python with 0 comment

让我冷静下,惆怅....

我封装了2天,整理一下我的封装exe辛酸史

首先知道封装py文件成exe可执行文件,用的最多的就是pyinstaller这个库。
去官网看看,支持什么版本。官网地址
里面写支持python2.7,python3.4-3.7
我安装的是python3.7.2所以我们直接

pip install pyinstaller

打包也很简单,比如我们要打包的py文件在D:\exePy这个文件夹里面

我们可以在cmd命令里面,用cd,定位到D:exePy文件夹目录下
然后

pyinstaller demo.py

这段就是打包的语法,正常情况下,会在D:exePy文件里面创建一个builddist文件夹,还有一个.spec后缀名的文件
exe可执行文件在dist里面,其他的东西没啥用,可以删了,可以直接运行exe

但是.....估计会报错
各种乱七八糟的问题 ,整得你想打人

遇到的第一个问题,pyinstaller直接无法运行,告诉我路径存在中文字符...我的pip在c盘的用户路径下的,而我电脑的用户名是中文的,那个那个C盘的用户名文件夹也是中文的...这...改不了...哪怕改了那个文件夹名字,我其他的很多变量都有问题...

很tmd无语的重装了个系统,shit!
以后绝对不会给Windows取中文名!!!

然后又是安装各种东西,当我把python都部署好了,又来pyinstaller,这回没有中文问题了,能成功打包好。你可以在cmd里面看到过程,成功一目了然。

但是你还是不一定能运行那个exe文件,弹出一个黑框转瞬即逝...我tm连黑框里面的东西都没看清就没了,0.2秒的时间,出现到消失,我用手机录屏,然后慢慢回放看内容,不行,太快了,不好定位到那一瞬间。然后我用电脑录屏,才看到了黑框里面的东西。说什么can't find Tix?

在网上看到各种关于pyinstaller打包的问题
这里要说一个严肃的问题,说是,如果你的py文件里面如果引用了很多库,你需要把那些库挨个找到,然后复制到你要打包的py文件的同级目录下。不然会找不到模块的错误...

但是我怎么感觉pyinstaller是自动给我从pip的模块目录下面获取的demo.py里面import的库啊。不过好像听说有些模块不能自动导入,需要手动。
反正我是把那些什么requests库都复制过去了,避避邪,免得出错。

可能会你py文件里面需要的东西,你用的路径问题,打包时路径不对。

还有一定要注意你打包好后的exe运行,如果小黑框弹出什么东西,一定要看行号,一定要看行号,一定要看行号。去py文件里面排查问题
没有问题就能运行了
打包的技巧输入的一些常用的参数

pyinstaller -F -w -i D:\tupian\tu.ico demo.py

-F代表dist文件夹下只生成一个exe文件,不加-F,就会有一片文件
-w代表不输出小黑框,一般有GUI的程序可以不要小黑框,那就加上-w,建议第一次打包这个程序时不要加-w,因为如果有错,你可以查看小黑框里面的错误信息,确定没问题了,在加入-w,重新打包,如果你的程序是命令行程序,加了-w什么都没有了
-i是设置文件的图标,后面跟上图标所在的路径,相对绝对都可以

这些参数区分大小写

我打包那个中文路径的问题,我解决了一天,决定重装系统。第二天因为can't find Tix提示,想了半天,管我不仔细看错误行号...哎...

如果对你有帮助,打钱

赞赏



Responses