【问题标题】:Difference in version of setuptools with virtualenvsetuptools 与 virtualenv 的版本差异
【发布时间】:2013-10-07 13:35:02
【问题描述】:

这是我的 Windows 设置

  • c:\Python27 : 通过官方微星安装
  • setuptools :通过python setup.py install 安装(来自:setuptools-1.1.5.tar.gz
  • pip         :通过python get-pip.py       安装(来自get-pip.py
  • virtualenv :通过python setup.py install 安装(来自:virtualenv-1.10.1.tar.gz
  • 使用创建虚拟环境:virtualenv --no-site-packages myenv

现在,setuptools 在以下 2 种情况下显示不同的版本:

  1. 打开外壳并运行pip list:
    pip (1.4.1)
    setuptools (1.1.5)
    virtualenv (1.10.1)

  2. activate virtualenv & 运行 pip 列表
    点 (1.4.1)
    设置工具 (0.9.8)

为什么setuptool 在 vi​​rtualenv 中显示版本 0.9.8,尽管我安装了 1.1.5 版本,如全局路径所示?

更新:

我尝试了@Rod 的建议,它奏效了。但是我的设置坏了。我希望在答案中提到警告。我在这里添加这个,这样其他人就不会像我一样浪费时间。如果我在创建 virtualenv 时使用选项--no-setuptools,则在激活 virtualenv 后,pip 会全局安装包。

我的项目有一些通过pip install 安装的依赖项。他们停止工作(即 MySQLdb 适配器)。当我创建另一个没有 --no-setuptools 选项的 virtualenv 时,它开始工作。

【问题讨论】:

标签: python virtualenv setuptools easy-install


【解决方案1】:

为什么 setuptool 在 vi​​rtualenv 中显示版本 0.9.8 虽然我 安装1.1.5版本如全局路径所示?

看到的不同 setuptools 版本是由于 virtualenv 在其存档中捆绑了 setuptools 版本(版本 1.10.1 与 setuptools 0.9.8 捆绑在一起)。从存档安装本地 setuptools 以避免访问网络。

在您的 virtualenv 中使用不同版本的 setuptools 应该不是问题。

更改版本

如果您必须更改版本,目前除了解压 tar 文件并将 virtualenv-1.10.1\virtualenv_support 中的 setuptools 存档替换为较新版本之外,目前无法强制下载其他版本的 setuptools。

最终,您将能够使用 --extra-search-dir 选项指定包含要使用的另一个版本的 setuptools 的目录,但该功能目前不起作用。

注意: 如果您在创建 virtualenv 时未指定 --no-setuptools,Virtualenv 将安装自己的 setuptools 版本。显然,使用选项--no-setuptools 不会安装 setuptools 或 pip。它很可能会破坏 virtualenv 提供的封装(如 OP 所述)。

【讨论】:

  • 我想知道为什么它在用旧版本覆盖之前不检查现有的 setuptools 包。当我已经在全球范围内使用--no-setuptools 时,使用它有什么缺点吗?
  • 已更新以更清楚地回答 --no-setuptools 是作为信息而不是作为解决方案提供的。
猜你喜欢
  • 2021-04-23
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 2015-08-16
  • 1970-01-01
  • 2015-10-25
相关资源
最近更新 更多