python创建虚拟环境打包_Pyinstaller虚拟环境下打包python文件

本文介绍了如何使用PyInstaller在虚拟环境下打包Python程序,解决打包后文件过大、耗时长以及运行闪退的问题。首先,通过创建和激活虚拟环境来确保纯净的打包过程。然后,在虚拟环境下使用PyInstaller打包Python文件,采用`-D`选项生成一个文件夹,根据控制台报错添加缺失库。最后,如果打包的exe文件依赖第三方库,需要将这些库复制到dist文件夹中,以确保程序正常运行。
摘要由CSDN通过智能技术生成

在日常生活中经常遇见需要把写好的python文件传到另外一台电脑上使用,但如果仅仅发送python文件的话,则需要对方电脑也配置好python环境。因此,可以选择将python打包成exe文件,这样就无需在另一台电脑上配置相应的环境了。

python提供了一个打包的库叫做Pyinstaller,理想情况下可以实现一键打包。然而在实际打包中会存在下列问题:

打包完的exe文件太大

依赖库太多,打包耗时长

打包完的exe文件打不开 (打开后控制台闪了一下就关闭了,程序无法运行)

在网上查阅相关资料后,可通过下述方式解决这三个问题:

文件太大:在虚拟环境(virtualenvs)下打包,可以使得打包过程更纯净,减少不必要的库和依赖

打包耗时长:采用-D,--onedir的方式打包,打包生成一个文件夹,之后根据打开exe时控制台报错来导入对应的库

exe文件打不开,控制台闪退:虚拟环境和项目的打包地址不要含有中文,在打包完后根据控制台报错导入缺失的所有库,即可打开exe

具体过程见下列步骤:

Step1:配置虚拟环境

利用pip安装virtualenvs:

pip install virtualenv

创建虚拟环境:

选择一个不含中文路径的地址来创建虚拟环境,比如这里我选择“D:\VirEnvs”,在该路径下右键点击“在此处打开命令窗口”,或者打开cmd cd到该路径下。

Python 中,可以使用 PyInstaller 工具将 Python 代码打包成可执行文件(.exe)。PyInstaller 是一个免费的第三方库,可以将 Python 代码打包成 Windows、Linux 和 macOS 平台的可执行文件。 以下是使用 PyInstallerPython 代码打包成可执行文件的步骤: 1. 安装 PyInstaller 在命令行中输入以下命令来安装 PyInstaller: ``` pip install pyinstaller ``` 2. 创建虚拟环境 可以使用 Python 的内置 venv 模块创建虚拟环境。在命令行中输入以下命令来创建虚拟环境: ``` python -m venv myenv ``` 这将在当前目录下创建一个名为 myenv 的新虚拟环境。 3. 激活虚拟环境 在 Windows 系统上,可以在命令行中输入以下命令来激活虚拟环境: ``` myenv\Scripts\activate ``` 在 macOS 或 Linux 系统上,可以在命令行中输入以下命令来激活虚拟环境: ``` source myenv/bin/activate ``` 4. 安装依赖库 在虚拟环境中,可以使用 pip 安装 Python 代码所需的所有依赖库。在命令行中进入包含 Python 代码的目录,并运行以下命令来安装依赖库: ``` pip install -r requirements.txt ``` 其中 requirements.txt 是包含所有依赖库名称和版本号的文件。 5. 打包 Python 代码 在虚拟环境中,可以使用 PyInstallerPython 代码打包成可执行文件。在命令行中进入包含 Python 代码的目录,并运行以下命令: ``` pyinstaller --onefile myscript.py ``` 其中 myscript.py 是要打包Python 代码文件名。这个命令将生成一个名为 myscript.exe 的可执行文件,它包含了 Python 解释器和所有依赖库。 6. 运行可执行文件 可以在命令行中运行 myscript.exe 来执行 Python 代码。注意,需要保持虚拟环境处于激活状态,否则可能会出现依赖库不匹配的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值