【问题标题】:How to force virtualenv to install latest setuptools and pip from pypi?如何强制 virtualenv 从 pypi 安装最新的 setuptools 和 pip?
【发布时间】:2013-06-13 23:04:19
【问题描述】:

是否可以强制 virtualenv 使用 pypi 提供的最新 setuptools 和 pip?本质上,我正在寻找--never-download 标志的相反

目前,当我创建一个新的 virtualenv 时,它使用与 virtualenv 捆绑在一起的本地(旧)版本。

$ v.mk testvenv
New python executable in testvenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ pip show setuptools
---
Name: setuptools
Version: 0.6c11
Location: /Users/cwilson/.virtualenvs/testvenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
Requires: 
$ pip search setuptools
[...]
setuptools                - Easily download, build, install, upgrade, and
                            uninstall Python packages
INSTALLED: 0.6c11
LATEST:    0.7.2
[...]

【问题讨论】:

    标签: python virtualenv pip setuptools virtualenvwrapper


    【解决方案1】:

    出于安全原因不支持。

    使用 virtualenv.py 作为一个独立的脚本(即没有关联的 virtualenv_support 目录)不再支持安全性 原因并会因错误而失败。除此之外,--never-download 现在始终固定为 True,并且仅在 向后兼容的短期(Pull #412)。

    我也不能使用 --extra-search-dir 选项,因为它目前已损坏 https://github.com/pypa/virtualenv/issues/327

    看起来唯一的选择就是等待 virtualenv 维护人员更新捆绑包?

    【讨论】:

      【解决方案2】:

      您可以在安装 virtualenv 后使用 pip install -U pip 升级 pip。

      我相信您可以编写一个引导脚本来自动执行此步骤。

      【讨论】:

        【解决方案3】:

        我需要最新的 setuptools 库,而 --extra-search-dir 标志对我不起作用(尽管它显然已修复)。

        但是,在没有 setuptools 的情况下创建一个 virtualenv,然后直接从 PyPi 安装效果很好。 例如。设置一个名为test的virtualenv:

        virtualenv --no-setuptools test
        source test/bin/activate
        wget https://bootstrap.pypa.io/ez_setup.py -O - | python
        easy_install pip
        

        测试

        python -c 'import setuptools; print setuptools.__version__'
        

        显示正确的版本。

        【讨论】:

        • 非常好的解决方案!
        【解决方案4】:

        我遇到了同样的问题,我通过升级 setuptools 解决了它。

        如果env 是您的虚拟环境,请运行以下命令:

        $ env/bin/pip install --upgrade setuptools

        【讨论】:

          【解决方案5】:

          在 ematsen 的 excellent answer 的基础上,我制作了一个适用于 virtualenvwrapper 的 bash 脚本

          #!/bin/bash
          source `which virtualenvwrapper.sh`
          mkvirtualenv --no-setuptools $1
          wget https://bootstrap.pypa.io/ez_setup.py -O - | python
          rm setuptools-*.zip
          easy_install pip
          
          # for python version < 2.7.9
          # https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
          pip install urllib3[secure]
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-02-16
            • 1970-01-01
            • 2011-06-26
            • 1970-01-01
            • 2023-03-27
            • 2011-03-29
            • 2017-09-21
            • 1970-01-01
            相关资源
            最近更新 更多