2

这是我的 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 使用:virtualenv --no-site-packages myenv

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

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

  2. activatevirtualenv & 运行 pip list
    pip (1.4.1)
    setuptools ( 0.9.8 )

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

更新:

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

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

4

1 回答 1

3

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

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

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

更改版本

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

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

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

于 2013-10-01T14:22:51.860 回答