脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Pyinstaller+Pipenv打包Python文件的实现示例

Pyinstaller+Pipenv打包Python文件的实现示例

2022-10-19 11:32Dream丶Killer Python

相信大家都试过将Python文件进行打包,本文主要介绍了Pyinstaller+Pipenv打包Python文件,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

相信大家都试过将Python文件进行打包,来发给其他没有安装Python环境的用户使用,但通常情况下,打包生成的exe文件都很大,而产生这种情况的原因就是,打包并不会只打包我们所使用的一些库,在我们日常使用的环境中,可能会有很多没有用的关联库被一起打包。这时,创建一个虚拟环境就是最好的选择,然后在虚拟环境中进行打包。

安装pipnev

pipenv 用来管理虚拟环境,先安装一下 pipenv

?
1
pip install pipenv

使用 pip show pipenv 检查是否安装成功。

前期准备

创建一个文件夹,来保存虚拟环境相关文件,并cd进入该文件夹下。

创建虚拟环境

?
1
pipenv install

进入虚拟环境

?
1
pipenv shell

安装项目用到的库

?
1
pip install pandas

如果数量比较多的话,可以新建一个requirements.txt文件来保存需要的库名,一起下载。

Pyinstaller+Pipenv打包Python文件的实现示例

再在虚拟环境中运行下面代码,记得修改requirements.txt文件路径,这里添加了阿里镜像速度要快些。

?
1
pip install -r D:\requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

在虚拟环境中安装pyinstaller

这一步至关重要,如果没有在虚拟环境中安装pyinstaller的直接打包的话,会使用默认python环境的pyinstaller进行打包,那么,恭喜你前面都白做了。

?
1
pip install pyinstaller

使用pyinstaller打包

pyinstaller打包有不少可选参数,可以根据自己的需要进行添加。

-F:打包单个文件,产生一个文件用于部署(默认),如果代码都写在一个 .py 文件时使用,项目有多个文件时不要使用

?
1
pyinstaller -F xxx.py

-D:打包多个文件,产生一个目录用于部署(默认),用于框架编写的代码打包

?
1
pyinstaller -D xxx.py(项目入口文件)

–key=keys:使用 keys 进行加密打包

?
1
pyinstaller --key=123456 -F xxx.py
  • -d:产生 debug 版本的可执行文件
  • -p:用来添加程序所用到的包的所在位置,设置导入路径,可以用 ; ( Linux 使用 :)分割来指定多个目录。
  • -w:表示不用控制台窗口,使用 Windows 子系统执行,当程序启动的时候不会打开命令行(只对 Windows 有效)
  • -c:表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认)(只对 Windows 有效)
  • -i:将 file.ico 添加为可执行文件的资源,改变程序的图标(只对 Windows 系统有效)

下面是我打包时用的代码。

  • ./1.ico:exe文件图标路径
  • ./test.py:代码路径
?
1
pyinstaller -F -w -i ./1.ico ./test.py

运行完之后,可执行文件在dist文件夹下。

下面是两种情况下打包的对比,可以看到在虚拟环境中打包生成的可执行文件要小很多。

Pyinstaller+Pipenv打包Python文件的实现示例

当然我们虚拟环境用完了之后,如果想要删除虚拟环境,可以

?
1
pipenv --rm 删除虚拟环境

这里再给出一些pipenv的常用操作

?
1
2
3
4
5
6
7
8
9
10
11
pipenv --where                 列出本地工程路径
pipenv --venv                  列出虚拟环境路径
pipenv --py                    列出虚拟环境的Python可执行文件
pipenv install                 创建虚拟环境
pipenv isntall [moduel]        安装包
pipenv install [moduel] --dev  安装包到开发环境
pipenv uninstall [module]       卸载包
pipenv uninstall --all         卸载所有包
pipenv graph                   查看包依赖
pipenv lock                    生成lockfile
pipenv run python [pyfile]     运行py文件

到此这篇关于Pyinstaller+Pipenv打包Python文件的实现示例的文章就介绍到这了,更多相关Pyinstaller Pipenv打包Python 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_43965708/article/details/123212603

延伸 · 阅读

精彩推荐