# Python `virtualenv`指南
> 原文: [https://thepythonguru.com/python-virtualenv-guide/](https://thepythonguru.com/python-virtualenv-guide/)
* * *
于 2020 年 1 月 7 日更新
* * *
**注意**:
本教程需要`pip`,如果您尚未这样做,请首先通过[安装`pip`](/installing-packages-in-python-using-pip/)。
`virtualenv`是用于分隔项目所需的不同依赖项的工具。 在处理多个项目时,一个项目需要一个与另一个项目完全不同的包版本是一个常见的问题,`virtualenv`可帮助我们解决此类问题。 它还有助于防止污染全局站点包。
## 安装`virtualenv`
* * *
`virtualenv`只是 [pypi](https://pypi.python.org/pypi/virtualenv/13.1.2) 提供的包,您可以使用`pip`安装`virtualenv`。
```py
pip install virtualenv
```
安装后,您可能需要将`C:\Python34\Scripts`添加到`PATH`环境变量中。 这样,诸如`pip`,`virtualenv`之类的命令将在任何目录级别可用。
## 创建虚拟环境
* * *
创建一个名为`python_project`的新目录,并将当前工作目录更改为`python_project`。
```py
mkdir python_project
cd python_project
```
要在`python_project`中创建虚拟环境,您需要发出以下命令。
```py
virtualenv my_env
```
这将在`python_project`内创建一个新文件夹`my_env`。 此文件夹将包含用于安装包的 python 可执行文件和`pip`库的副本。 在这里,我们使用`my_env`作为名称,但是您可以使用任何您想要的名称。 现在您可以使用虚拟环境了,您只需要激活它即可。
在本教程中,我们有一点要使用 python 3.4 安装了`virtualenv`,假设您也有 python 2.7 并想创建一个使用 python 2.7 而不是 3.4 的虚拟环境,则可以使用以下命令进行操作。
```py
virtualenv -p c:\Python27/python.exe my_env
```
## 激活虚拟环境
* * *
如果您在 Windows 上,则需要执行以下命令。
```py
my_env\Scripts\activate.bat
```
在 Linux 上,请输入。
```py
source my_env/bin/activate
```
发出上述命令后,您的命令提示符字符串将发生变化,看起来像这样,
```py
( my_env ) Path_to_the_project: $
```
注意`( my_env )`,这表明您现在正在虚拟环境下运行。
现在您的虚拟环境已激活。 您在此处安装的所有内容仅会被该项目使用。
让我们尝试安装请求包。
在 Windows 中,输入以下代码。
```py
my_env\Scripts\pip.exe install requests
```
您不能在 Windows 中仅使用`pip`安装请求,因为如果将`C:\Python34\Scripts`添加到`PATH`环境变量中,它将执行全局`pip`。 如果尚未添加,则会出现错误。
同样,在 Linux 中,您需要执行以下代码
```py
my_env\Scripts\pip install requests
```
## 停用虚拟环境
* * *
要停用虚拟环境,您需要使用以下命令。
```py
deactivate
```
此命令将使您返回系统的默认 python 解释器,我们可以在其中将包安装在全局站点包中。
您现在应该能够看到使用`virtualenv`的动机。 它可以帮助我们组织项目的需求而不会相互冲突。
* * *
* * *
- 初级 Python
- python 入门
- 安装 Python3
- 运行 python 程序
- 数据类型和变量
- Python 数字
- Python 字符串
- Python 列表
- Python 字典
- Python 元组
- 数据类型转换
- Python 控制语句
- Python 函数
- Python 循环
- Python 数学函数
- Python 生成随机数
- Python 文件处理
- Python 对象和类
- Python 运算符重载
- Python 继承与多态
- Python 异常处理
- Python 模块
- 高级 Python
- Python *args和**kwargs
- Python 生成器
- Python 正则表达式
- 使用 PIP 在 python 中安装包
- Python virtualenv指南
- Python 递归函数
- __name__ == "__main__"是什么?
- Python Lambda 函数
- Python 字符串格式化
- Python 内置函数和方法
- Python abs()函数
- Python bin()函数
- Python id()函数
- Python map()函数
- Python zip()函数
- Python filter()函数
- Python reduce()函数
- Python sorted()函数
- Python enumerate()函数
- Python reversed()函数
- Python range()函数
- Python sum()函数
- Python max()函数
- Python min()函数
- Python eval()函数
- Python len()函数
- Python ord()函数
- Python chr()函数
- Python any()函数
- Python all()函数
- Python globals()函数
- Python locals()函数
- 数据库访问
- 安装 Python MySQLdb
- 连接到数据库
- MySQLdb 获取结果
- 插入行
- 处理错误
- 使用fetchone()和fetchmany()获取记录
- 常见做法
- Python:如何读取和写入文件
- Python:如何读取和写入 CSV 文件
- 用 Python 读写 JSON
- 用 Python 转储对象