【问题标题】:Issue with pip, distribute, and setuptoolspip、distribute 和 setuptools 的问题
【发布时间】:2012-09-24 20:53:47
【问题描述】:

我有一个使用distribute_setup.py 的包来使用distribute 代替setuptools - 所以我有:

from distribute_setup import use_setuptools
use_setuptools()

在包的 setup.py 文件的顶部。为了演示这个问题,我创建了一个简单的setup.py 文件:

from distribute_setup import use_setuptools
use_setuptools()

import setuptools
print "PATH TO SETUPTOOLS", setuptools.__file__

如果我现在使用virtualenv 创建一个虚拟环境,并尝试在虚拟环境中使用python 运行python setup.py,我会得到:

PATH TO SETUPTOOLS /Users/tom/tmp/debug/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyc

这是我所期望的 - 即这实际上是 distribute。但是,如果我现在尝试从虚拟环境中使用 pip 安装“包”:

pip install -e git://github.com/astrofrog/test_pip_distribute.git#egg=test_pip_distribute

我明白了:

PATH TO SETUPTOOLS /Users/tom/tmp/testenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/__init__.py

这是“香草”设置工具。为什么会这样? distribute_setup.pypip 不能很好地配合吗?

可以在此处找到测试“包”。

【问题讨论】:

    标签: python setuptools distribute


    【解决方案1】:

    Virtualenv 默认安装 setuptools,默认忽略全局包。

    我还没有测试过任何东西,但请尝试执行以下操作: 1) virtualenv testenv --distribute 2) virtualenv testenv --global-site-packages 3)在virtualenv中安装distribute 4) 从 setuptools 导入设置

    设置(... install_requires=['分发'] )

    【讨论】:

    • 但有趣的是,在我不使用 pip 将包安装到 virtualenv 的情况下,它的行为正常,但使用 pip 却没有。所以这似乎是一个 pip 而不是 virtualenv 问题。 distribute_setup.py 脚本会将 distribute 安装到 virtualenv 中(如果它不存在)。
    猜你喜欢
    • 2012-01-22
    • 2011-06-15
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2015-10-25
    相关资源
    最近更新 更多