文章目录
什么是虚拟环境
虚拟环境(Virtual Environment) 是Python中用于隔离项目依赖的工具,其允许我们在同一台机器上为不同的Python项目创建独立的环境,每个环境可以有自己独立的Python版本和第三方库。
虚拟环境的作用
- 依赖隔离:不同项目可以使用不同版本的库而不会冲突
- 项目独立性:确保项目所需的依赖被明确记录且不会影响系统全局环境
- 便于协作:通过requirements文件可以轻松分享项目环境配置
- 避免权限问题:不需要系统管理员权限安装包
- 干净卸载:删除虚拟环境即可完全移除所有相关依赖
如何搭建虚拟环境
方法1: 使用Python内置venv模块
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# Linux/Mac:
source myenv/bin/activate
# 停用虚拟环境
deactivate
方法2: 使用virtualenv
# 安装virtualenv
pip install virtualenv
# 创建虚拟环境
virtualenv myenv
# 激活/停用同上
方法3: 使用conda(适用于Anaconda/Miniconda用户)
# 创建虚拟环境
conda create --name myenv python=3.8
# 激活
conda activate myenv
# 停用
conda deactivate
在PyCharm中使用虚拟环境
创建新项目时:
- 新建项目时选择"New Environment using Virtualenv"
- 指定Python解释器位置和虚拟环境位置
为已有项目添加虚拟环境:
- File > Settings > Project: [项目名] > Python Interpreter
- 点击齿轮图标 > Add
- 选择"Virtualenv Environment"并配置
使用已有虚拟环境:
- 在Python Interpreter设置中,选择"Existing environment"
- 指向虚拟环境中的Python解释器(如myenv/Scripts/python.exe)
也可以先通过 python -m venv myenv 命令进行创建虚拟环境,随后在pycharm中使用该虚拟环境
虚拟环境搭建成功
在pycharm上成功使用虚拟环境时,控制台输入左侧会出现虚拟环境的名称:
报错:禁止在系统上运行脚本
</font face=“”>
当在windows下执行虚拟环境的脚本命令时,可能会报错:
无法加载文件 D:\Coder\Warehouse\python\algorithm_problem\myenv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中
的 about_Execution_Policies。
为什么会出现这个错误?
原因:PowerShell 执行策略限制
- 当我们运行
.\myenv\Scripts\Activate.ps1
激活虚拟环境时,PowerShell 会阻止执行.ps1
脚本,因为默认的执行策略是Restricted
(禁止运行任何脚本)。 - 这是 Windows 的安全机制,防止恶意脚本自动运行。
- 我们可以在windows下执行
get-ExecutionPolicy
命令显示当前的策略,可以观察到当前策略是默认策略Restricted
解决方法
方法 1:临时允许脚本运行(推荐)
# 仅对当前会话生效,关闭 PowerShell 后恢复默认策略
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- 优点:不影响系统全局策略,仅当前终端有效。
方法 2:永久修改执行策略
# 全局修改执行策略(需要管理员权限)
Set-ExecutionPolicy RemoteSigned -Force
- 适用场景:如果需要经常运行
.ps1
脚本(如 Python 虚拟环境激活)。
方法 3:改用 CMD 激活虚拟环境
如果不想修改 PowerShell 策略,可以直接用 CMD:
D:\Coder\Warehouse\python\algorithm_problem\myenv\Scripts\activate.bat
- CMD 没有脚本执行限制,不会报错。
管理虚拟环境中的包
# 安装包
pip install package_name
# 生成requirements文件(记录所有依赖)
pip freeze > requirements.txt
# 根据requirements文件安装依赖
pip install -r requirements.txt
虚拟环境是Python开发中的最佳实践,能有效解决依赖冲突问题,一般情况下,出于依赖隔离与项目独立性的考虑,建议为每个项目单独创建虚拟环境。