我在 Ubuntu 16.04 上运行 Python 3.5.2 ( /usr/bin/python3.5
) 和 Pip3 8.1.1 ( /usr/bin/pip3
),并通过 apt 安装了python3-virtualenv
。 在 dpkg 下,版本为python3-virtualenv/xenial-updates 15.0.1+ds-3ubuntu1 all
。
当我通过运行以下命令创建新环境时:
virtualenv --python=/usr/bin/python3.5 env
我期望 pip3 版本为 8.1.1(我系统上安装的唯一 pip3)。 相反,我激活虚拟环境并pip --version
输出以下内容:
pip 10.0.0b2 from /home/ubuntu/env/lib/python3.5/site-packages/pip (python 3.5)
作为临时解决方案,我可以在创建环境后立即降级,但这似乎不是预期的行为。 请让我知道是否或哪些其他信息会有所帮助。
您是否有PIP_PRE
环境变量,或指定--pre
参数的 pip 配置文件? 或者您的发行版修补了 pip 以安装预发布版本(不太可能,我曾想过)。 你能用 PyPI(或 github)的 virtualenv 重现这种行为吗?
对不起,我也想把它包括在内! 我在环境中没有设置PIP*
变量,也没有 pip 配置文件。 我不相信 dist 已被修补,但我无法验证。
我将尝试使用来自 PyPI 或 Github 的 virtualenv 进行复制并返回。
@jwarren116我相信 virtualenv 在创建新的 virtualenv 时会从 PyPI 获取最新可用版本的 setuptools、pip 和 wheel(使用本地 pip 缓存,如果可用)。 在 virtualenv 15.1.0 之前,它在内部设置“PIP_PRE=1”。 因此,升级到 virtualenv 15.1.0 或更高版本至少会让您在新的 virtualenv 中安装 pip 9.0.3。 如果您特别想要在您的 virtualenv 中使用 pip 8.1.1,我认为您需要在创建后明确降级它。
@jmbowman感谢您的澄清。 我知道我记得 virtualenv 设置了PIP_PRE
,但无法在源代码中找到它。 我没有想到要回到历史。
此问题已自动标记为陈旧,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 如果您想让它保持打开状态,只需添加评论。 感谢你的贡献。
最有用的评论
@jwarren116我相信 virtualenv 在创建新的 virtualenv 时会从 PyPI 获取最新可用版本的 setuptools、pip 和 wheel(使用本地 pip 缓存,如果可用)。 在 virtualenv 15.1.0 之前,它在内部设置“PIP_PRE=1”。 因此,升级到 virtualenv 15.1.0 或更高版本至少会让您在新的 virtualenv 中安装 pip 9.0.3。 如果您特别想要在您的 virtualenv 中使用 pip 8.1.1,我认为您需要在创建后明确降级它。