Pyinstaller+Pipenv打包Python文件,简直不要太香!

简介: Pyinstaller+Pipenv打包Python文件,简直不要太香!

安装pipnev


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

pip install pipenv
复制代码

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


前期准备


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


创建虚拟环境


pipenv install
复制代码


进入虚拟环境


pipenv shell
复制代码


安装项目用到的库


pip install pandas
复制代码

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

image.png

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

pip install -r D:\requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
复制代码


在虚拟环境中安装pyinstaller


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

pip install pyinstaller
复制代码


使用pyinstaller打包


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

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

pyinstaller -F xxx.py
复制代码

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

pyinstaller -D xxx.py(项目入口文件)
复制代码

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

pyinstaller --key=123456 -F xxx.py
复制代码

-d:产生 debug 版本的可执行文件

-p:用来添加程序所用到的包的所在位置,设置导入路径,可以用 ; ( Linux 使用 :)分割来指定多个目录。

-w:表示不用控制台窗口,使用 Windows 子系统执行,当程序启动的时候不会打开命令行(只对 Windows 有效)

-c:表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认)(只对 Windows 有效)

-i:将 file.ico 添加为可执行文件的资源,改变程序的图标(只对 Windows 系统有效)


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

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

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

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

image.png


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

pipenv --rm                    删除虚拟环境
复制代码


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

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文件
复制代码

这就是今天文章的主要内容了,建议大家收藏备用,像这种工具之后肯定是要用到的。



相关文章
|
10天前
|
Python
用python3快速读取30G+的txt文件
这篇文章介绍了如何使用Python分块读取大文件(如30G+的txt文件),通过设置每次读取的块大小来处理大型文本文件,以减少内存消耗并提高处理效率。
40 14
|
7天前
|
存储 Python
INI文件介绍与Python处理指南
INI文件介绍与Python处理指南
|
10天前
|
数据安全/隐私保护 Python
用python对文件内容进行加密的2种方式
这篇文章介绍了使用Python对文件内容进行加密的两种方式:利用`cryptography`库的Fernet对称加密和使用`rsa`库进行RSA非对称加密。
30 6
|
10天前
|
Python
python简单分割文件的方法(python经典案例)
这篇文章介绍了两种使用Python进行文件分割的方法:通过读取指定字节数分割大文件成小文件,以及通过行数将文本文件分割成多个小文件。
30 1
|
5天前
|
存储 Python
一文让你搞懂 Python 的 pyc 文件
一文让你搞懂 Python 的 pyc 文件
28 15
|
7天前
|
Docker Python 容器
python检测docker compose文件是否正确
python检测docker compose文件是否正确
|
6天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
15 2
|
9天前
|
缓存 开发者 Python
Python指定行号读取文件的方法
这种方法的优势在于它的效率和简便性,特别是当需要从同一文件中读取多行时。`linecache`会缓存文件,减少了重复读取的开销。
15 4
|
7天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
15 1
|
8天前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
28 1
下一篇
无影云桌面