【问题标题】:virtualenvwrapper and Python 3virtualenvwrapper 和 Python 3
【发布时间】:2013-04-13 23:00:49
【问题描述】:

我在 ubuntu lucid 上安装了 python 3.3.1 并成功创建了一个 virtualenv,如下所示

virtualenv envpy331 --python=/usr/local/bin/python3.3

这在我的主目录上创建了一个文件夹 envpy331

我也安装了virtualenvwrapper。但在文档中只支持2.4-2.7 版本的python。有没有人尝试组织python3 virtualenv?如果是这样,你能告诉我怎么做吗?

【问题讨论】:

  • 问题在于 pip 仍然是 python2 pip,不是吗?我认为您想要的是 virtualenvwrapper 使用 pyvenv 而不是 virtualenv

标签: python python-3.x virtualenvwrapper


【解决方案1】:

如果您已经安装了 python3 virtualenvwrapper,那么在虚拟环境中使用 python3 唯一需要做的就是使用以下方法创建环境:

which python3 #Output: /usr/bin/python3
mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment

或者,(至少在 OSX 上使用 brew):

mkvirtualenv --python=`which python3` nameOfEnvironment

开始使用环境,你会看到只要你输入python你就会开始使用python3

【讨论】:

  • 在通过 brew 并排安装 2.7.8 和 3.4.1 的 OSX 上对我来说不太适用。不过,将其修改为“mkvirtualenv --python=`which python3` nameOfEnvironment”效果很好。
  • @ChrisDoggett 在 Ubuntu 14.10 上相同。
  • 在 Ubuntu 上,命令为:mkvirtualenv --python=/usr/bin/python3 your-env-name
  • 如果你使用 bash,你可以做替换来保存一行 - mkvirtualenv --python=$(which python3) nameOfEnvironment
  • 真正很棒的是创建以下 bash 别名 alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)" - 然后很容易为 python 2 或 3 创建 virtualenvs
【解决方案2】:

您可以让 virtualenvwrapper 使用自定义 Python 二进制文件,而不是运行一个 virtualenvwrapper。为此,您需要使用 virtualenv 使用的 VIRTUALENV_PYTHON 变量:

$ export VIRTUALENV_PYTHON=/usr/bin/python3
$ mkvirtualenv -a myproject myenv
Running virtualenv with interpreter /usr/bin/python3
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
(myenv)$ python
Python 3.2.3 (default, Oct 19 2012, 19:53:16) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

【讨论】:

  • 这实际上已经过时了。您应该使用 Jonathan 目前建议的 --python 参数,而不是设置环境变量。
  • @Rawrgulmuffins 为什么?这避免了必须为每个新环境指定 python 版本。
  • @Joost 这是一个公平的观点。我个人觉得这是一个缺点,但我可以理解为什么人们更喜欢这样。
【解决方案3】:

latest version of virtualenvwrapper 在 Python3.2 下测试。很有可能它也适用于 Python3.3。

【讨论】:

    【解决方案4】:

    virtualenvwrapper 现在允许您指定不带路径的 python 可执行文件。

    所以(至少在 OSX 上)mkvirtualenv --python=python3 nameOfEnvironment 就足够了。

    【讨论】:

    • 需要两个破折号。会编辑,但 SE 需要 6 个字符,而更改只需要一个。
    【解决方案5】:

    在 Ubuntu 上;使用mkvirtualenv -p python3 env_name 使用python3 加载virtualenv。

    在 env 中,使用python --version 进行验证。

    【讨论】:

    • python --version 显示版本
    【解决方案6】:

    您可以将其添加到您的 .bash_profile 或类似文件中:

    alias mkvirtualenv3='mkvirtualenv --python=`which python3`'
    

    然后当你想创建 python 3 环境时使用mkvirtualenv3 而不是mkvirtualenv

    【讨论】:

      【解决方案7】:

      我发现正在运行

      export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
      

      export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4
      

      在 Ubuntu 的命令行中强制 mkvirtualenv 使用 python3 和 virtualenv-3.4。还是要做的事

      mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment
      

      创造环境。这是假设您在 /usr/bin/python3 中有 python3,在 /usr/local/bin/virtualenv-3.4 中有 virtualenv-3.4。

      【讨论】:

      • 只需使用which python2.4which python3.5which python3.6 即可找到--python=DIRECTORY 的目录
      【解决方案8】:

      virtualenvwrapper 的 bitbucket 问题跟踪器上的 post 可能会引起您的兴趣。 那里提到,virtualenvwrapper 的大部分函数都适用于 Python 3.3 中的venv 虚拟环境。

      【讨论】:

        【解决方案9】:

        我像这样将export VIRTUALENV_PYTHON=/usr/bin/python3 添加到我的~/.bashrc 中:

        export WORKON_HOME=$HOME/.virtualenvs
        export VIRTUALENV_PYTHON=/usr/bin/python3
        source /usr/local/bin/virtualenvwrapper.sh
        

        然后运行source .bashrc

        您可以为每个新环境指定python版本mkvirtualenv --python=python2 env_name

        【讨论】:

          猜你喜欢
          • 2012-02-18
          • 2018-01-31
          • 2013-08-23
          • 1970-01-01
          • 1970-01-01
          • 2015-06-11
          • 2018-09-13
          • 1970-01-01
          • 2018-02-05
          相关资源
          最近更新 更多