Python3虚拟环境和PIP

时间:2013-08-10 00:32:37

标签: python-3.x

我想在一个纯粹通过python3.3解释的虚拟环境中玩游戏。在我的系统(Ubuntu 13.04)上,有两种方法可以创建虚拟环境。

virtualenv env

或:

pyvenv-3.3 env

如果我使用旧的忠实用户virtualenv,我可以按预期使用所有内容,但是,PIP会将所有内容安装到python2.7 libs而不是python3.3 libs中。所以,使用

调用脚本
python3 script.py 

似乎没有用,但是:

python script.py 

像魅力一样工作。但是,显然必须使用python2.7


现在,如果相反,我使用来自Python3 +(pyvenv-3.3)的“内置”venv,似乎一切都变得有些不可思议。它正确地将一个python3.3 lib文件夹放在venv中,然而,使用PIP安装模块不再可能,因为它似乎以某种方式引用全局而不是虚拟环境。

所以,关于我的问题:

您如何推荐只使用Python3.3(+)和PIP安装到python3.3库的工作虚拟环境?

7 个答案:

答案 0 :(得分:49)

您可以考虑尝试类似以下内容:

  1. 创建虚拟环境

    $ python3 -m venv myvenv
    $ source myvenv/bin/activate
    (myvenv)$
    
  2. 根据official pip installation instructions安装点子。 从点子v1.5.1开始,您不再需要在安装点之前手动安装setuptools。 < / p>

    (myvenv)$ curl https://bootstrap.pypa.io/get-pip.py | python
    
  3. 停用然后重新激活您的虚拟环境。执行此操作或pip将无法正常工作。

    (myvenv)$ deactivate
    $ source myvenv/bin/activate
    (myvenv)$ which pip
    
  4. 更长的回应:

    是的,我有类似的问题。它与生活在你的系统上的所有其他蟒蛇和点子以及未安装的点子有关,就像你习惯的非“核心”虚拟物一样。

    由于某种原因,venv模块没有安装setuptools和pip。

    我做了上述事情,到目前为止,非常好。

    Python 3.3中的 venv不会自行安装pip:

      

    常见的安装工具,例如Distribute和pip与venvs一样工作 - 即当一个venv处于活动状态时,他们将Python软件包安装到venv中,而不需要被告知明确这样做。当然,您需要先将它们安装到venv中。

    默认情况下,Python 3.4实施venv installs pip。

      

    版本3.4中更改:默认安装pip

    http://docs.python.org/3/library/venv.html

    您可以使用which pippip -V查看您的点子数。如果您没有停用/激活venv,pip -V将无法显示正确的点数,但which pip仍可能显示正确的路径。

答案 1 :(得分:7)

我是这样做的(我在Ubuntu 12.04上)。

首先,在文件夹中安装Python 3.3,例如/opt/python3。然后运行以下命令:

/opt/python3/bin/pyvenv-3.3 ~/py3  # pyvenv is python3's built-in virtualenv
source ~/py3/bin/activate
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python
easy_install-3.3 pip 

答案 2 :(得分:5)

最新版本的pip有一个pip3函数,将安装到您的默认Python3实例中。

pip3 install python_lib

如果您的系统上同时包含Python 2.x和3.y,则pip将安装到Python 2.x中,pip3将安装到Python 3.y中。

答案 3 :(得分:2)

这对我有用:

> virtualenv-3.3 env
...
> source env/bin/activate
> pip install simple-date
...
> python
Python 3.3.0 (default, Mar 27 2013, 20:56:52) 
[GCC 4.7.2 20130108 [gcc-4_7-branch revision 195012]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import simpledate
>>>

不幸的是,我不完全确定我是如何在当天安装virtualenv-3.3的。我我可能做了类似的事情:

> wget http://python-distribute.org/distribute_setup.py
> python3.3 distribute_setup.py
> easy_install-3.3 virtualenv

[编辑:是的,我的笔记http://www.acooke.org/cute/GettingPyt0.html]

似乎证实了这一点

请注意,这是一个特定于python-3.3的virtualenv。

如评论中所述,我无法让pyvenv-3.3工作。

答案 4 :(得分:1)

我在OS X上遇到了同样的问题。看起来pip bin/ easy_install的{​​{1}}可执行文件仍然适用于Python 2.如果你使用{ {1}}可执行文件(或其变体)它应该可以正常工作!

答案 5 :(得分:1)

我使用PPA ppa:fkrull/deadsnakes在我的Elementary Os(基于Ubuntu的Linux发行版)中安装Python 3.4。

我想提出一个指示。在Python 3.4 Ubuntu包**中创建虚拟环境时(使用 pyvenv-3.4 ),pip安装在 local / bin 下,而不是 bin

因此,要使用它,您必须在第44行修改 bin / activate 脚本。它应该是

PATH="$VIRTUAL_ENV/bin:$VIRTUAL_ENV/local/bin:$PATH"

答案 6 :(得分:0)

在文档中提到的很好:

  

常见的安装工具,例如Distribute和pip与venvs一样工作 - 即当一个venv处于活动状态时,他们将Python软件包安装到venv中,而不需要被告知明确这样做。 ** 当然,您需要先将它们安装到venv中:这可以通过在激活venv的情况下运行distribute_setup.py,然后运行easy_install pip **来完成。或者,您可以下载源代码压缩包并在解压缩后运行python setup.py install,并激活venv。