首页 > 编程知识 正文

python打包后无法运行,pyinstaller打包文件夹

时间:2023-05-03 12:03:59 阅读:29319 作者:165

这是个很长的故事,讨厌很长,直接看最后的结论

事情的经过

上周接受需求,给客人写了小工具。 他要求打包成exe文件。 这当然不困难。 除了写Python的人之外,大多数人的电脑都没有Python编译器,所以打包到exe中,让用户(windows )双击即可打开,这也是必备技能。

直接在Pyinstaller上打开cmder:

py installer-fwe : est URL _ crawler.py

(-F打包为一个文件,-w不显示调试窗口。 我的小工具有GUI,所以不使用默认的调试窗口。)

等了很久,才完成打包,看看文件,嚯,200米! 怪不得打包了这么久.

在网上查了一下资料,Anaconda内置了很多库,据说打包时会打包很多不需要的模块,然后用纯Python打包。

有一点道理。 我想把虚拟机穿得更久。 我打算取出空闲的笔记本电脑,重新安装Python并打包。

正好我最近学习flask的时候,在用pipenv。 虽然我还不知道pipenv的强度,但我知道它是一个管理虚拟环境和软件包的工具,于是我考虑是否可以使用pipenv创建新的python编译器并运行pyinstaller进行打包。

于是我马上在网上查了一下,pipenv pyinstaller没有找到有用的信息。 干脆自己试试吧。 总之pipenv的操作不麻烦。

打开cmder:

#创建虚拟环境

pipe NV安装

#进入虚拟环境

PipeNV外壳

#安装模块

pip install小工具. py中使用的模块

#也安装打包的模块

pip install pyinstaller

#开始打包

py installer-fwe : est URL _ crawler.py

包装完成,看大小,11M! 成功了!

之后,由于客户改变了需求,我们更改了源代码,更改了目录,用pipenv重新打包后,打包完毕回到了200M! 试了好几次,怎么也回不到过去的20M! 我怀疑前面的20M是我的幻觉。

但是,要想先拉开差距,200米的“小”工具无法体验到用户体验,所以要使用排除法,调查哪个模块所占的体积较大,然后再考虑优化的方法。 第一个怀疑的是GUI。 我几乎毫不犹豫地认定是那个。 我在使用PySimpleGUI。 (强烈推荐。 基于tkinter。 )首先注释掉PySimpleGUI的内容,然后打包。 你觉得打包结束了多久?

198米!

好像是我怪他,但排除了几次,找到迷人衬衫的是fake_useragent

这个库是用来伪装请求标头的,主要是我不擅长复制用户代理,所以没什么问题。 注释掉fake_useragent,自己手动粘贴用户代理即可

# from fake _ useragentimportuseragent

# ua=user代理()

# headers={ ' user-agent ' : ua.random }

headers={ ' user-agent ' : ' Mozilla/5.0 (windows nt 6.2; WOW64 ) appleWebKit/537.36(khtml,like Gecko ) chrome/30.0.1599.17 safari/537.36 ) }

不使用fake_useragent,打包到exe中的是14M。 够了。 先交叉再说

之后,经过多次探索、多次放弃的缘分(反复删除创建环境),终于找到了完美打包的方法

结论

重要的是在虚拟环境中安装pyinstaller

如果虚拟环境中没有安装pyinstaller,也可以使用pyinstaller命令,但由于调用了系统的原始python编译器并包含许多相关库,因此在虚拟环境中也进行了打包

另一个需要注意的是,在虚拟环境中安装用你的py文件调用的库。 否则,打包也无法正常工作。

最后,让我们再次复习一下正确的流程。 前提是安装了pipenv。

#创建虚拟环境

pipe NV安装

#进入虚拟环境(可以省略上一步。 因为如果没有虚拟环境,它会自动创建)

PipeNV外壳

#安装模块

pipinstallrequestspyquerypysimpleguifake _ user agent

#也安装打包的模块

pip install pyinstaller

#开始打包

py installer-fwe : est URL _ crawler.py

补充:如何将python代码打包为. exe文件

我使用的python版本是3.6,当前最新的python版本是3.7,但是pyinstaller不支持当前最新的3.7,所以请不要使用最新版本的python。 最新版本的兼容性不好。

正式开始吧:

一.点击电脑开始菜单,搜索cmd。

二.安装pyinstaller

python3附带了pip安装程序,请直接键入pip安装程序,然后按回车,如下图所示

三.在pyinstaller上生成. exe文件

1、在D驱动器上创建新的hello.py文件进行测试

hello.py的内容如下。

2、在命令行上找到hello.py的目录

3、输入pyinstaller文件名. py即pyinstaller hello,py

pyinstaller -F hello.py生成单个exe文件,因此很简单。 缺点是exe文件太大了

或:

4、运行成功后,在hello.py的该目录下创建dist文件夹。 打开后请找到并运行exe文件

打开dist文件

双击以运行

成功了! 你记住了吗?

以上是个人经验。 希望能作为参考。 也请支持云海天教程。 如果有错误,或者没有考虑到完整的地方,请不要吝惜指导。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。