虚拟环境通过为每个Python项目创建独立的依赖空间,解决了不同项目间库版本冲突的问题。它隔离了Python解释器和第三方库,确保项目依赖互不干扰,避免全局环境被“污染”。使用venv(Python 3.3+内置)或virtualenv可创建虚拟环境,激活后所有包安装仅限该环境。常见实践包括:将虚拟环境目录加入.gitignore、用pip freeze > requirements.txt锁定依赖、每个项目独立建环境。高效使用虚拟环境能显著提升开发效率与项目可维护性。

虚拟环境,简单来说,就是Python项目的一个独立工作空间。它能让每个项目拥有自己专属的Python解释器和一套依赖库,互不干扰。我们之所以要用
virtualenv
venv
Python项目开发中,最让人头疼的莫过于依赖管理了。你可能手上有好几个项目,比如一个老旧的Django 2.2项目,它依赖
django-rest-framework==3.9
django-rest-framework==3.12
site-packages
回想一下,如果你没有使用虚拟环境,当你需要为项目A安装
requests
pip install requests==X.Y.Z
requests
虚拟环境的解法非常优雅。它实际上是在你的项目目录下创建了一个独立的Python环境副本。这个副本包含了自己的Python解释器、pip工具以及一个空的
site-packages
pip
site-packages
举个例子,假设你有一个名为
project_alpha
numpy==1.20.0
pip install numpy==1.20.0
project_beta
numpy==1.24.0
project_beta
pip install numpy==1.24.0
pip freeze > requirements.txt
创建和激活虚拟环境是日常开发中非常基础但又极其重要的操作。Python 3.3及以上版本已经内置了
venv
要创建一个虚拟环境,你只需要在项目根目录下运行:
python3 -m venv my_project_env
这里的
my_project_env
.venv
venv
.gitignore
创建之后,你需要激活它才能让你的终端会话使用这个隔离的环境。 在类Unix系统(Linux/macOS)上:
source my_project_env/bin/activate
在Windows的PowerShell中:
.\my_project_env\Scripts\Activate.ps1
在Windows的命令提示符(Cmd)中:
my_project_env\Scripts\activate.bat
激活后,你的终端提示符通常会显示虚拟环境的名称(比如
(my_project_env)
deactivate
至于
virtualenv
venv
pip install virtualenv
virtualenv my_project_env
virtualenv
venv
venv
venv
virtualenv
venv
尽管虚拟环境的概念并不复杂,但在实际使用中,我见过不少新手甚至一些有经验的开发者也会犯一些小错误,或者没有充分利用其带来的便利。
一个常见的误区就是忘记激活虚拟环境。有时候,我们可能在项目目录下创建了虚拟环境,但却直接运行
pip install some-package
source venv/bin/activate
which python
where python
另一个误区是混淆全局和虚拟环境的包。激活虚拟环境后,所有通过
pip
高效实践策略方面,我个人有几点体会:
.gitignore
.gitignore
venv/
.venv/
requirements.txt
pip freeze > requirements.txt
pip install -r requirements.txt
pip-tools
requirements.txt
Poetry
Rye
venv
virtualenv
总的来说,虚拟环境是Python开发中一个不可或缺的工具。它可能不是最华丽的技术,但绝对是最实用、最能提升开发效率和项目稳定性的基石之一。学会正确地使用它,能够让你在Python项目的海洋中游刃有余。
以上就是什么是虚拟环境?为何要用 virtualenv 或 venv?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号