【问题标题】:Tox installs the wrong version of pip to it's virtual envTox 将错误版本的 pip 安装到它的虚拟环境中
【发布时间】:2016-11-02 21:11:44
【问题描述】:

我正在使用tox 来管理一些测试环境。我有一个依赖项(backports.ssl-match-hostname),我无法使用最新版本的 pip 下载,所以我需要恢复到 pip 8.0.3 以允许安装工作。

我在我的 tox.ini 文件中包含了 8.0.3 版本的 pip 以获取依赖项。

deps=
    pip==8.0.3

但是,当我跑步时

source .tox/py27/bin/activate

并进入虚拟测试环境,然后运行

pip --version

我结束了

8.1.2

但是,在我的 tox 环境之外,当我运行相同的命令时,我得到了

8.0.3

tox 在抓取 pip 时有什么特别之处吗?为什么我无法指定要用作依赖项的 pip 版本?

编辑:补充一点,似乎我能够获取依赖项 pip==8.0.3,但对于其他依赖项,它们仍然从使用 pip==8.1.2 启动的命令运行

所以,我需要能够先抓取 pip==8.0.3,然后在安装后抓取其他所有内容。仍然不确定为什么 tox 以 pip==8.1.2 开头

【问题讨论】:

    标签: python linux dependencies pip tox


    【解决方案1】:

    这显然是“virtualenvs”python 包的结果,其中包含它所引用的一组预选的 python 包,其中一个是最新最好的 pip。

    我不知道这是否是这样做的首选方式,但我通过运行找到了成功

    pip uninstall virtualenv
    

    然后使用有效的版本重新安装

    pip install virtualenv==15.0.1
    

    有了“正确”版本的 virtualenv,我就可以运行我的 tox 命令了

    source .tox/py27/bin/activate
    

    并查看所需的 pip 版本

    pip --version
    pip 8.0.3
    

    【讨论】:

    • 我发现卸载现有的 virtualenv 很重要,因为 pip 捆绑在 virtualenv_support 包中,它不会随着 virtualenv 的更新而更新
    【解决方案2】:

    这里有一个解决方法:https://github.com/pypa/pip/issues/3666

    虽然为了让它工作,我不得不在我的脚本中编写“pip install pip==8.1.1”。回顾一下:

    将 pip.sh 脚本添加到您的项目中:

    #!/bin/bash
    pip install pip==8.1.1
    pip install "$@"
    

    添加到您的 tox.ini:

    install_command = {toxinidir}/pip.sh {opts} {packages}
    

    【讨论】:

      【解决方案3】:

      我最近遇到了这个问题。我已经使用了一段时间,但它没有注册,因为我在使用 Python 2/3 代码时偶尔会失败。发生这种情况的另一种方法是,如果像我一样,您在不同 Python 版本之间更改 virtualenv 并且不清理。

      检查/bin/Scripts 以查看python2 是否指向python。如果 virtualenv 是 Python 3,那么这将意味着 python2 实际上调用了 Python 3。反之亦然,当然,如果您的 virtualenv 是 Python 2 并且您想测试 Python 3 代码。

      【讨论】:

      • 感谢您的回复。老实说,我不记得了,已经很久了。
      【解决方案4】:

      virtualenv 的新版本可以下载最新的 pipsetuptoolswheel -- 您可以在通过 tox 运行时使用 tox-virtualenv-no-download 包禁用此行为参见:@987654321 @

      【讨论】:

        猜你喜欢
        • 2016-06-20
        • 1970-01-01
        • 2021-10-24
        • 2014-03-05
        • 2021-10-21
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多