勇哥注:
当我们做一个程序项目的时候,创建虚拟环境是为了解决下面的问题:
(1)这个程序指定了python版本
(2)这个程序指定了特殊的模块版本
(3)这个程序要安装的模块出现路径过长的问题,无法安装,这个时候可以安装在虚拟环境目录下(因为虚拟环境目录你可以指定位置)
虚拟环境可以放在你的软件目录下,如下图所示,虚拟环境安装在了env目录下(目录名随便)。
你拷贝程序时就等于把执行环境一并拷贝走了。
在env\Scripts下,你可以看到python的解释器。
env\Lib\site-packages下则是你安装在虚拟环境下的各种第三方模块。
(一)安装虚拟环境其它的好处:
1. 项目依赖隔离
虚拟环境能够完全隔离不同项目的依赖包,避免项目间的依赖冲突。
例如,项目A可能需要某个库的1.0版本,而项目B需要同一库的2.0版本,
使用虚拟环境可以让两个项目各自使用所需的版本而不互相干扰。
2. 保护系统Python环境
在系统级Python环境中安装大量第三方库可能会导致环境混乱,甚至影响系统功能。
虚拟环境让您可以安全地进行开发,无需担心破坏系统Python环境。
3. 便于项目移植和部署
使用虚拟环境可以轻松生成项目的依赖清单(如requirements.txt),
使项目在不同机器上的安装和部署变得简单可靠,确保开发环境与生产环境的一致性。
4. 权限管理
在没有系统管理员权限的情况下,您可以在虚拟环境中自由安装和管理Python包,
无需依赖系统级的Python安装权限。
5. 开发团队协作
团队成员使用相同的虚拟环境配置可以确保所有人都在相同的开发环境中工作,
避免因环境差异导致的"在我机器上可以运行"的问题。
6. 多项目并行开发
当同时开发多个项目时,每个项目可以有自己独立的虚拟环境,您可以在不同项目间切换而不需要重新配置环境。
7. 测试和调试便利
虚拟环境使您可以轻松测试代码在不同依赖版本下的表现,便于排查依赖相关的问题,也方便进行兼容性测试。
8. 版本控制集成
您可以将虚拟环境的配置文件(如requirements.txt或Pipfile)纳入版本控制,
确保项目的依赖历史可追踪,便于回滚到特定版本的环境配置。
9. 优化开发流程
使用虚拟环境可以标准化开发流程,结合CI/CD工具可以实现自动化测试和部署,
提高开发效率和代码质量。
(二)创建虚拟环境的流程
(1)使用名称"env"创建虚拟环境
python -m venv env
(2)使用虚拟环境的pip的绝对路径来安装组件,例如:PySide6
E:\nx自动化配置python版\env\Scripts\pip.exe install -i https://pypi.tuna.tsinghua.edu.cn/simple PySide6
(3)执行PySide6的测试程序(用的虚拟环境下的python解释器)
E:\nx自动化配置python版\env\Scripts\python.exe test_pyside6.py
test_pyside6.py代码:
import sys from PySide6.QtWidgets import QApplication, QMainWindow, QLabel # 创建应用程序实例 app = QApplication(sys.argv) # 创建主窗口 window = QMainWindow() window.setWindowTitle("PySide6测试") window.setGeometry(100, 100, 400, 200) # 添加标签 label = QLabel("PySide6安装成功!", window) label.setGeometry(50, 50, 300, 100) label.setStyleSheet("font-size: 18px;") # 显示窗口 window.show() # 运行应用程序的主循环 sys.exit(app.exec())
(4)让ide能使用我们配置好的虚拟环境
如果不配置,你在ide中点运行,使用的是主python环境下的解释器,而不是虚拟环境下的解释器。
由于勇哥用的Trae编辑器是vscode的一种,所以这里就只介绍vscode的方法:
(4.1) 先在项目目录下创建一个配置目录(.vscode),然后创建一个配置文件settings.json。
settings.json的内容如下:
{ "python.defaultInterpreterPath": "E:\\nx自动化配置python版\\env\\Scripts\\python.exe", "python.terminal.activateEnvironment": true, "python.linting.enabled": false, "python.formatting.provider": "none" }
第一行就是指定了ide要使用你的虚拟目录下的python解释器。
这个文件一但创建成功,你的Trae就会在右下角跳出一个面板,问你是不是要Select InterpreterPath。
这个时候你就可以选择你的虚拟环境了。
这个操作,其实也可以通过菜单进行,文件-->首选项-->设置面板中的设定。
但是如果你先不生成.vscode的配置文件的话,你就看不到这个虚拟环境的选项目。
详细请看下面的配置指南。
附件1:
ide虚拟环境配置指南.md
# IDE自动选择虚拟环境配置指南 本指南将详细说明如何在常见的Python IDE中配置自动选择项目中的虚拟环境(位于`E:\nx自动化配置python版\env`)。 VS Code配置 自动配置法(推荐) 1. 我们已经为您创建了`.vscode\settings.json`文件,其中包含了正确的虚拟环境路径配置 2. 只需用VS Code打开项目文件夹(`E:\nx自动化配置python版`) 3. VS Code会自动读取`.vscode\settings.json`文件中的配置 4. 检查VS Code右下角,应该已经显示了正确的Python解释器:`Python 3.13.8 ('env': venv)` 手动配置法 如果自动配置未生效,可以按照以下步骤手动配置: 1. 打开项目文件夹 2. 按 `Ctrl+Shift+P` 打开命令面板 3. 输入并选择 `Python: Select Interpreter` 4. 在弹出的列表中,选择 `Enter interpreter path...` 5. 点击 `Find...` 并导航到: `E:\nx自动化配置python版\env\Scripts\python.exe` 6. 选择这个解释器 PyCharm配置 1. 打开项目:点击 `File > Open`,然后选择 `E:\nx自动化配置python版` 2. 配置解释器:点击 `File > Settings > Project > Python Interpreter` 3. 点击右上角的齿轮图标,选择 `Add...` 4. 选择 `Virtualenv Environment` 5. 选择 `Existing environment` 6. 点击 `...` 按钮,导航到: `E:\nx自动化配置python版\env\Scripts\python.exe` 7. 点击 `OK` 确认选择 8. 点击 `Apply` 和 `OK` 保存设置 Spyder配置 1. 打开Spyder 2. 点击 `Tools > Preferences > Python interpreter` 3. 选择 `Use the following Python interpreter` 4. 点击 `Browse...` 按钮,导航到: `E:\nx自动化配置python版\env\Scripts\python.exe` 5. 点击 `Apply` 和 `OK` 保存设置 6. 重启Spyder使更改生效 ##Jupyter Notebook配置 1. 首先激活虚拟环境: - 在命令提示符中运行:`E:\nx自动化配置python版\env\Scripts\activate` - 在PowerShell中运行:`E:\nx自动化配置python版\env\Scripts\Activate.ps1` 2. 安装jupyter包:`pip install jupyter` 3. 启动Jupyter Notebook:`jupyter notebook` 4. 在Notebook中,点击 `Kernel > Change kernel`,应该能看到虚拟环境的Python版本 ##验证配置是否成功 配置完成后,可以通过以下方法验证是否使用了正确的虚拟环境: (1) 在VS Code中验证 1. 在VS Code中打开项目文件夹 2. 创建一个新的Python文件或打开现有的Python文件 3. 点击右上角的"运行"按钮或按`F5`运行代码 4. 在输出窗口中查看结果 (2) 测试脚本验证 我们已经创建了一个专门的测试脚本`test_vscode_config.py`,您可以: 1. 在VS Code中打开该文件 2. 按`F5`运行或点击右上角的"运行"按钮 3. 查看输出结果,确认以下几点: - Python解释器路径指向虚拟环境中的python.exe - 能够成功导入PySide6 ##重要说明 - 直接通过命令行运行`E:\nx自动化配置python版\env\Scripts\python.exe test_vscode_config.py`时,`VIRTUAL_ENV`环境变量可能不会被设置 - 这是因为直接运行python.exe与通过VS Code或激活脚本来使用虚拟环境有所不同 - 在VS Code中运行时,环境变量会被正确设置 - 最重要的验证标准是:Python解释器路径正确且能成功导入PySide6 我们添加了`test_vscode_config.py`脚本,专门用于帮助您验证VS Code配置是否正确。 ## 命令行使用虚拟环境 如果您需要在命令行中使用虚拟环境,可以按以下方式激活: **Windows命令提示符**: ```cmd E:\nx自动化配置python版\env\Scripts\activate ``` **PowerShell**: ```powershell E:\nx自动化配置python版\env\Scripts\Activate.ps1 ``` 激活后,命令行提示符前会显示`(env)`,表示已成功进入虚拟环境。 ## 安装新的Python包 在虚拟环境中安装新的包,请使用以下命令: ```cmd E:\nx自动化配置python版\env\Scripts\pip.exe install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 或者在已激活虚拟环境的命令行中直接使用: ```cmd pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 常见问题解决 1. **VS Code未检测到虚拟环境** - 确保`.vscode`文件夹和`settings.json`文件位于项目根目录 - 尝试重启VS Code - 手动选择解释器路径 2. **虚拟环境中的包无法导入** - 确认使用了正确的Python解释器 - 检查包是否已安装:`E:\nx自动化配置python版\env\Scripts\pip.exe list` - 重新安装有问题的包 3. **PyCharm中运行程序时报错** - 检查运行配置中的解释器设置 - 确保项目解释器正确设置为虚拟环境中的Python 如有其他问题,请参考各IDE的官方文档或搜索相关解决方案。
附件2:test_vscode_config.py
用于测试虚拟环境是否配置正确。
import sys import os # 打印当前Python解释器路径 print("Python解释器路径:", sys.executable) # 检查是否在虚拟环境中运行 venv_path = os.environ.get('VIRTUAL_ENV') # 定义虚拟环境的预期路径 virtual_env_expected_path = os.path.join(os.getcwd(), "env") # 检查Python解释器路径是否指向虚拟环境 sys_path_in_virtual_env = "env\\Scripts\\python.exe" in sys.executable # 显示虚拟环境状态信息 if venv_path: print(f"环境变量VIRTUAL_ENV设置为: {venv_path}") else: print("注意: 环境变量VIRTUAL_ENV未设置\n这在直接运行python.exe时是正常的,但在VS Code中运行时应该被设置") # 尝试导入PySide6 try: import PySide6 print(f"PySide6版本: {PySide6.__version__}") print("PySide6导入成功!") except ImportError: print("错误: 无法导入PySide6,请检查虚拟环境配置。") # 验证虚拟环境配置是否正确 if sys_path_in_virtual_env: if venv_path: print("配置验证成功!VS Code正在使用正确的虚拟环境。") else: print("配置验证基本成功!Python解释器路径正确指向虚拟环境。\n注意: 在直接运行python.exe时,VIRTUAL_ENV环境变量不会被设置,但这是正常的。\n在VS Code中运行时,该环境变量应该会被正确设置。") else: print("警告: Python解释器路径没有指向虚拟环境,请检查VS Code配置。") print(f"预期的虚拟环境路径应该包含: {virtual_env_expected_path}") print("请确保在VS Code中选择了正确的Python解释器。")
运行结果(环境配置好后的效果):
PS E:\nx自动化配置python版> & E:/nx自动化配置python版/env/Scripts/python.exe e:/nx自动化 配置python版/test_vscode_config.py Python解释器路径: E:\nx自动化配置python版\env\Scripts\python.exe 注意: 环境变量VIRTUAL_ENV未设置 这在直接运行python.exe时是正常的,但在VS Code中运行时应该被设置 PySide6版本: 6.10.0 PySide6导入成功! 配置验证基本成功!Python解释器路径正确指向虚拟环境。 注意: 在直接运行python.exe时,VIRTUAL_ENV环境变量不会被设置,但这是正常的。 在VS Code中运行时,该环境变量应该会被正确设置。 PS E:\nx自动化配置python版>
(5)ide的运行按钮测试你的程序。
测试上面的 test_pyside6.py 代码。
(三)命令行的激活脚本
env\Scripts下有4个以activate开头的文件,就是各种不同操作系统下用的激活脚本。
激活脚本用于命令行后激活虚拟环境,如果你直接在cmd下使用pip安装功能包,会安装到python的主环境下,而不是虚拟环境下。
执行activate.bat
就变成以(env)开头的命令行状态了,这个时候你安装各种第三方包就会安装到env下面去。
退出虚拟环境执行:
deactivate
这4个激活文件的详细说明:
=================
1. activate.bat - Windows命令提示符(cmd.exe)专用
- 适用环境 :Windows系统的Command Prompt(cmd.exe)
- 主要功能 :
- 设置 VIRTUAL_ENV 环境变量指向虚拟环境目录( E:\nx自动化配置python版\env )
- 修改命令提示符,添加 (env) 前缀标识当前处于虚拟环境
- 更新 PATH 环境变量,将虚拟环境的Scripts目录路径添加到最前面,确保优先使用虚拟环境中的工具
- 保存原始环境变量值( _OLD_VIRTUAL_PROMPT , _OLD_VIRTUAL_PATH 等)以便后续恢复
2. Activate.ps1 - Windows PowerShell专用
- 适用环境 :Windows系统的PowerShell
- 主要功能 :
- 将虚拟环境的Python可执行文件路径添加到 $Env:PATH 环境变量前端
- 设置命令提示符以标识当前处于虚拟环境
- 支持参数如 VenvDir (指定虚拟环境目录)和 Prompt (自定义提示符前缀)
- 利用 pyvenv.cfg 文件中的配置值
3. activate - Unix/Linux/Mac的Shell脚本
- 适用环境 :Linux、macOS等系统的bash、zsh等shell
- 主要功能 :
- 文件头部注明" You cannot run it directly ",通常由其他脚本调用
- 包含 deactivate() 函数用于退出虚拟环境并恢复原始环境变量
- 重置 PATH 、 PYTHONHOME 等环境变量
- 更新命令提示符 PS1 以显示虚拟环境状态
这些激活脚本的核心作用
1. 1. 环境隔离 :确保使用的是虚拟环境中的Python解释器和第三方库
2. 2. 路径优先级 :将虚拟环境的Scripts目录添加到PATH最前面
3. 3. 状态标识 :通过修改命令提示符直观显示当前环境状态
4. 4. 环境恢复 :保存原始环境变量,支持通过deactivate命令恢复
### 使用场景
- 在命令行中手动激活虚拟环境时使用对应脚本
- 不同操作系统和命令行环境需要使用不同的激活脚本
- 激活后,可以确保pip安装的包只影响当前虚拟环境,不污染系统Python环境

