Python 3.x Python3虚拟环境和PIP

Python 3.x Python3虚拟环境和PIP,python-3.x,Python 3.x,我想在一个纯粹通过python3.3解释的虚拟环境中玩。在我的系统(Ubuntu13.04)上,有两种创建虚拟环境的方法 virtualenv env 或: 如果我使用旧的忠实版本,virtualenv,我就能够按预期使用所有内容,但是,PIP将所有内容安装到python2.7libs中,而不是python3.3libs中。因此,使用 python3 script.py 似乎不起作用,但: python script.py 工作起来很有魅力。但是,显然必须使用python2.7 现在

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

virtualenv env
或:

如果我使用旧的忠实版本,
virtualenv
,我就能够按预期使用所有内容,但是,PIP将所有内容安装到python2.7libs中,而不是python3.3libs中。因此,使用

python3 script.py 
似乎不起作用,但:

python script.py 
工作起来很有魅力。但是,显然必须使用python2.7


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

virtualenv env
那么,关于我的问题:

您建议如何获得一个只有Python3.3(+)和PIP安装到Python3.3 libs的工作虚拟环境

这对我很有用:

> 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
[编辑:是的,我的笔记似乎证实了这一点]

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

如评论中所述,我不能得到PyvV-3.3来工作。

你可以考虑尝试类似于以下的事情:
  • 创建您的虚拟环境

    $ python3 -m venv myvenv
    $ source myvenv/bin/activate
    (myvenv)$
    
  • 根据安装pip。从pip v1.5.1开始,在安装pip之前,您不再需要手动安装setuptools

  • 停用然后重新激活虚拟环境。执行此操作,否则pip将无法正常工作

    (myvenv)$ deactivate
    $ source myvenv/bin/activate
    (myvenv)$ which pip
    
  • 更长的响应时间: 是的,我也有类似的问题。它与您系统上的所有其他python和pip以及未安装的pip有关,就像您习惯的非“核心”virtualenv一样

    由于某些原因,venv模块未安装setuptools和pip

    我做到了以上几点,到目前为止,一切都很好

    venv in不自行安装pip:

    常见的安装工具,如Distribute和pip,在venv中可以按预期工作,即当venv处于活动状态时,它们将Python软件包安装到venv中,而无需明确告知。当然,您需要先将它们安装到venv中

    venv的实现默认安装pip

    在版本3.4中更改:默认情况下安装pip

    您可以使用
    哪个pip
    pip-V
    检查您的pip。如果您没有停用/激活venv并且
    pip-V
    将不会显示正确的pip,但是
    哪个pip
    可能仍然显示正确的路径。

    以下是我是如何做到的(我在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 
    

    我在OSX上也遇到了同样的问题。看起来,即使是通过
    easy\u install
    放入
    bin/
    pip
    可执行文件也仍然适用于Python 2。如果您使用
    pip3
    可执行文件(或其变体),它应该可以正常工作

    文档中提到过:

    常见的安装工具,如Distribute和pip,在venv中可以按预期工作,即当venv处于活动状态时,它们将Python软件包安装到venv中,而无需明确告知
    **
    当然,您需要首先将它们安装到venv中:这可以通过在激活venv的情况下运行distribute_setup.py来完成,然后运行easy_install pip
    **
    。或者,您可以下载源tarballs并在解包后运行python setup.py安装,同时激活venv

    我已经在我的基本操作系统(一个基于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"
    

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

    pip3 install python_lib
    

    如果系统上同时安装了Python2.x和3.y,
    pip
    将安装到Python2.x中,
    pip3
    将安装到Python3.y中。

    。奇怪的我运行了
    pyvenv-3.3env
    然后
    sourceenv/bin/activate
    然后
    wgethttp://python-distribute.org/distribute_setup.py
    then
    python distribute\u setup.py
    then
    easy\u install pip
    then
    pip install simple date
    它正试图安装在系统libs中。听起来是同一个问题。这是在opensuse上。好像是某个地方的一个bug。是的,似乎是访问系统而不是虚拟环境。奇怪的是,它是一个venv.+1,然而,我真的在寻找一个使用pyvenv-3.3的工作解决方案,因为我对新内置的venv有一些功能感兴趣。不管怎样,我都很感激你的尝试。我有一个类似于马特的解决方案,除了我在mac电脑上。但步骤基本相同。我在博客中提到了这些步骤:Ubuntu 12.04 LTS上的charm之类的作品可能值得注意的是,在使用pip之前,应该重新激活venv,否则使用的pip版本仍然是我使用python3.6的系统版本,并且默认情况下安装了pip蟒蛇3.6-m文氏'。源路径/to/install/bin/activate,然后运行pip--versionWell并没有使它更容易。
    pip3 install python_lib