Python新手如何安装使用虚拟环境?常见问题解答
Python 虚拟环境新手核心问题解答
为什么需要使用虚拟环境?
Python 默认采用全局包管理逻辑:所有项目默认共用系统里安装的同一个Python解释器,第三方包统一存在全局的site-packages目录下,本身没有项目级的隔离机制。
虚拟环境本质是给单个项目生成一套独立的Python运行副本,这套副本里的解释器版本、第三方依赖、环境变量完全和全局环境、其他项目的环境隔离开,你在这个环境里装包、改版本、删东西,都不会影响到其他项目或者系统本身的Python配置。
不使用虚拟环境会产生什么问题?
- 依赖版本冲突:不同项目对同一个第三方包的版本要求可能不一样,比如老项目依赖
requests==2.20.0的旧接口,新项目需要requests>=2.31.0的新特性,全局环境只能安装一个版本,必然有一个项目运行时报错。 - 损坏系统环境:macOS、绝大多数Linux发行版自带的Python是供系统内部工具调用的,如果你随意往全局环境装包、升级系统依赖的包版本,很容易导致系统自带的功能、终端命令运行异常。
- 依赖导出混乱:全局环境里会堆积你过往安装的所有第三方包,当你需要给当前项目导出依赖列表时,会把无关的全局包一并导出,后续迁移项目、给其他人部署时,很容易出现依赖冗余、版本冲突的问题。
- 权限报错:在类Unix系统下往全局Python路径装包默认需要管理员权限,操作不当很容易出现文件权限问题,Windows下也可能频繁弹出权限申请提示。
新手安装配置虚拟环境的必要操作流程
Python 3.3及以上版本自带venv模块,不需要额外安装任何第三方工具,新手用这套流程足够,操作步骤如下:
- 打开终端(Windows用cmd/PowerShell、macOS/Linux用系统终端),通过
cd 你的项目文件夹路径命令进入项目根目录 - 执行命令创建虚拟环境:
- Windows 系统:
python -m venv venv - macOS/Linux 系统:
python3 -m venv venv
命令最后一个venv是虚拟环境文件夹的名字,属于行业通用默认命名,VSCode、PyCharm等编辑器都能自动识别这个命名的虚拟环境,不需要手动配置解释器路径。记得把这个venv文件夹加到.gitignore里,不需要提交到代码仓库。
- Windows 系统:
- 执行命令激活虚拟环境:
- Windows(cmd终端):
venv\Scripts\activate.bat - Windows(PowerShell终端):
venv\Scripts\Activate.ps1 - macOS/Linux 系统:
source venv/bin/activate
- Windows(cmd终端):
- 激活完成后,你正常使用
pip install 包名安装项目需要的依赖即可,所有包都会存到项目下的venv文件夹里,不会改动全局环境。 - 不需要使用虚拟环境时,直接在终端执行
deactivate命令即可退出,虚拟环境文件夹会保留在本地,下次开发重新执行激活命令就能恢复环境。
如何判断当前是否处于Python虚拟环境中?
你可以通过几个非常直观的标识区分:
- 终端提示符前缀:这是最容易识别的特征,激活虚拟环境后,你的终端输入行最开头会出现一个带虚拟环境名的括号,比如
(venv) C:\my_project>、(venv) zhangsan@mac ~/my_project %,只要看到这个前缀,就说明当前处于虚拟环境中。 - 解释器路径校验:执行路径查询命令,如果返回的Python解释器路径在你项目的
venv文件夹下,就说明处于虚拟环境中:- Windows 执行:
where python - macOS/Linux 执行:
which python
举个例子,macOS下激活虚拟环境后返回路径一般是/Users/zhangsan/my_project/venv/bin/python,未激活时返回的是全局路径比如/usr/local/bin/python3。
- Windows 执行:
- pip路径校验:执行
pip -V命令,返回的路径如果指向venv文件夹下的site-packages目录,就说明处于虚拟环境中,比如返回内容为pip 23.2.1 from /Users/zhangsan/my_project/venv/lib/python3.10/site-packages/pip (python 3.10)。
内容的提问来源于stack exchange,提问作者Lyrixs
相关产品推荐
相关产品推荐

