一、windows系统下
开发环境:windows 10 64.bit
编辑器:vs code 1.76.2
已经安装了 python 3.8.7 32bit 和 python 3.10.11 64bit
在软件开发过程中,有时需要创建虚拟开发环境,方便软件开发部署与团队协作。
1 .下载虚拟环境管理工具包virtualenv
pip install virtualenv
2. 创建虚拟环境文件
在控制台输入:
virtualenv -p C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe project_python10_64bit_env
此处:
virtualenv -p 命令代表创建虚拟环境
C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe:表示虚拟环境使用的python解释器。
project_python10_64bit_env 表示要创建的虚拟环境文件夹。这个文件夹可根据需要用相对路径或绝对路径创建到不同位置。
3.启动并使用虚拟环境
在控制台运行 .\project_python10_64bit_env\scripts\activate
会看到出现下面的带括号的提示符,这个时候,说明您的控制台已经进入了该虚拟环境。
在程序选择解释器时,会出现该虚拟环境
选择使用该解释器,这样您就在创建的虚拟环境中进行开发了。
4.退出虚拟环境
在vscode控制台输入 deactivate 回车,就退出了该环境。
5.虚拟环境删除
直接在资源管理器中删除虚拟环境文件夹即可。
6.无法激活虚拟环境的处理
有时换了新的windows环境,第一次运行时,没有办法进入虚拟环境并报错,这时可能是您的终端权限问题。
系统不允许运行脚本,需要修改脚本运行权限。
这时,需要以管理员身份打开PowerShell
输入
set-executionpolicy remotesigned
回车后,再运行脚本,就可以正常进入虚拟环境了。
二、Ubuntu环境
Ubuntu环境下搭建虚拟环境和windows系统下类似
(一)安装 python下的 virtualenv包
在PowerShell中输入以下命令:
sudo apt-get install python-virtualenv
(二)创建虚拟环境文件夹
安装完成后,打开PowerShell进入要创建虚拟环境的文件夹,继续在PowerShell中输入以下命令,创建虚拟环境文件夹
mkdir .venv
(三)创建虚拟环境
virtualenv --system-site-packages .venv
进入以下界面
说明虚拟环境已经创建成功。
下图是整个PowerShell流程,如果搞不定的,请认真看下面的图片:
(四)进入虚拟环境
打开Vscode,利用‘打开文件夹’选项 打开您的工作文件夹,使终端目录在工作文件夹位置。这时在文件夹目录中会看到前面建立的。.venv文件夹,这个文件夹就是虚拟环境所在文件夹。
打开vscode的终端,在终端中输入:
source .venv/bin/activate
回车后显示以下内容,说明虚拟环境已经激活
(五)VScode中选择虚拟环境中的python解释器
此时,您就开始使用虚拟环境进行工作了。
三、使用虚拟环境打包
第一步:管理员方式打开cmd,cd到项目根目录
第三步:进入虚拟环境
pipenv shell
进入后,路径最前面会出现虚拟环境
第四步:查看依赖是否安装成功,也可以不查看
pipenv graph
第六步:生成spec
pyi-makespec -c main.py # 生成的spec文件中console=True,即需要打印到控制台
第七步:修改spec
修改后的spec
# -*- mode: python ; coding: utf-8 -*-
import sys
import os.path as osp
sys.setrecursionlimit(5000)
SETUP_DIR = 'C:\\Users\\zhangsan\\Desktop\\project\\'
block_cipher = None
a = Analysis(['main.py',
SETUP_DIR+'asynctask.py',
SETUP_DIR+'errors.py',
SETUP_DIR+'file.py',
SETUP_DIR+'msg.py',
SETUP_DIR+'msg_pattern.py',
SETUP_DIR+'pageon.py',
SETUP_DIR+'report.py',
SETUP_DIR+'script.py',
SETUP_DIR+'settings.py',
SETUP_DIR+'taibaorpa.py',
SETUP_DIR+'taiboweb.py',
SETUP_DIR+'webdriverhelper.py',
SETUP_DIR+'wechat.py',],
pathex=['C:\\Users\\13154\\Desktop\\taibaorpa'],
binaries=[],
datas=[(SETUP_DIR+'driver\\chrome','driver\\chrome'),
(SETUP_DIR+'log\\screenshot_taiboweb','log\\screenshot_taiboweb'),
(SETUP_DIR+'log\\screenshot_wechat','log\\screenshot_wechat'),
(SETUP_DIR+'log\\wechat_files','log\\wechat_files'),
(SETUP_DIR+'report','report'),
(SETUP_DIR+'res\\img','res\\img'),
(SETUP_DIR+'res\\vid','res\\vid'),
(SETUP_DIR+'README.md','.')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='main')
第八步:根据spec打包
pyinstaller -D main.spec
原创整理,仅为记录使用过程中遇到的问题,如有疑问请留言讨论,如果帮到了您,点赞、收藏是最好的鼓励:)