Python 如何使用 virtualenv?

How to use virtualenv with Python?

我计划为 Python 安装一个虚拟环境,以便将我的 Python 包分开。这样做的动机之一也是让 Python 在我的机器上共存两个版本 (Ubuntu 14.04)。我有以下奇迹:

  1. Python、PIP 和 virtualenv 应该按什么顺序安装?这有关系吗?
  2. 完成后,如何在 virtualenv 下保持两个 python 版本分开?
  3. 假设我正在处理单独的项目,是否建议将每个项目保存在由 virtualenv 创建的单独文件夹中?

我想听听专家的意见,以便以正确的方式和明智的方式做事。

我建议使用 pyenv。它位于 virtualenv 之上,提供了一种简单的方法来安装不同的 Pythons(cpython、jpython、anaconda 等),每个都有自己的 virtualenvs。您系统的 Python 可使用别名 system.

使用 virtualenv 在 Python 程序员中很常见。 这些链接将比我的回答更有用:

  • http://docs.python-guide.org/en/latest/dev/virtualenvs/
  • http://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/

    1. 是的,这很重要。 Pip 使用 Python,但由于 Ubuntu 带有 pre-installed 版本 Python(在你的情况下,2 和 3 都安装了),你不必担心这个。但是顺序是 Python -> PIP -> virtualenv.

    2. 在新的空项目文件夹中 cd 后,您可以使用 virtualenv -p /path/to/python/version venv 选择的 Python 版本创建 virtualenv。您可以使用 which python2which python3.

    3. 找到路径
    4. 如果我正确理解你的问题 - 是的。 virtualenv 的重点是将每个项目保存在一个单独的文件夹中,并设置自己的 virtualenv。即使是一个小项目,你也会更加熟悉 virtualenv 的概念(甚至可能像 Docker 这样的容器)。

  1. 您按此顺序安装它,请参阅下面的说明(尽管有其他选择)。你可以在pip之前用APT安装virtualenv,但是既然你安装了pip,就不需要了。
  2. 我现在真的不知道,但我发现了另一个可能对您有帮助的帖子:
  3. 强烈推荐,依赖关系可能不一样,这将帮助您保持整洁(例如关于版本控制)

现在,如何安装 Python 对于 Ubuntu 14.04,您将安装 python2.7 和 python3,默认情况下 "python" 是 python2.7 的别名。

Pip 你可以安装:

sudo apt-get install python-pip python3-pip

我不知道 py2 的 pip 和 py3 的 pip 如何共存,但它们可以作为单独的包使用。

虚拟环境 你可以使用 pip 安装 virtualenv:

pip install virtualenv

这里我使用 pip 作为 python2


设置完成后,我将执行以下操作:

mkdir -p project_name/source
cd project_name
virtualenv env

我通常在每个项目中保持 sourceenv 名称不变,因为我有一些钩子,但我建议您替换名称,特别是 "env" 因为它是了解你在哪个 VirtualEnv 中工作的关键,因为你会得到这样的东西:

(env)yser@machine:/home/user/cool_projects/project_name$

我还将 env 排除在 source 之外,以简化版本控制(无需将其标记为忽略)但是那就是我。

激活虚拟环境:

cd project_name
source env/bin/activate

现在您可以在 VirtualEnv 中 pip 安装。 要更改项目,请退出当前的 VirtualEnv:

deactivate

希望对您有所帮助!

In what order should Python, PIP and virtualenv be installed? Does it matter at all?

1. Install python
2. Install pip
3. Install virtualenv (with `pip install virtualenv`)
4. Create new virtualenv

How can I keep two python versions separate under virtualenv?

使用以下命令为不同的 python 版本创建单独的 python 环境:

    virtualenv -p /usr/bin/python2.7 <path/to/new/virtualenv/>

Assume I am working on separate projects, is it recommended to keep each of the project in a separate folder created by virtualenv or not?

不推荐。但是,您可以将这些项目保留在一个 virtualenv 下,直到为您的项目安装的 python 包版本彼此不冲突

阅读 Virtual Environment paragraph from The Hitchhiker’s Guide to Python! 它会回答您的很多问题!

您还可以查看 How do I install python 2.7.2 on Ubuntu? and to How to Install Pip on Ubuntu 以了解如何安装...

是的,最好为每个 python 项目使用它的 virtualenv

1- 在 venv 文件夹中创建 python virtualenv 使用:

>>> cd [your project path]
>>> virtualenv venv

2- 您可以通过以下方式激活您的环境:

>>> source ./venv/bin/active

3- 使用 pip 安装您的需求包:

>>> pip install -r <your requirements file>
>>> or pip install <python module>

您也可以在不激活环境的情况下安装您的需求模块

>>> ./venv/bin/pip install <python module>

4- 到 运行 您的 python 脚本使用:

>>> python <.py file>

如果您没有激活环境,请使用:

 >>> ./venv/bin/python <.py file>

如果你想管理你 python env 你有 virtual wrapper