115

error: option --single-version-externally-managed not recognized在使用pip install各种包(包括PyObjCand astropy)时,我似乎突然开始遇到错误。

我以前从未见过这个错误,但它现在也出现在 travis-ci 构建中,但没有任何改变。

此错误是否表示分发过时?

中的一些错误指定的选项setup.py

完全不同的东西?

4

7 回答 7

136

添加--egg选项

pip install --egg SCons

我使用pip版本 1.4.1

于 2013-10-31T02:54:15.627 回答
110

新更新:

安装最新版本的setuptools. 如果仍然出现错误,请wheel同时安装。

pip install -U setuptools
pip install -U wheel

原始答案/更多详细信息:

--single-version-externally-managed是一个用于 Python 包的选项,指示 setuptools 模块创建一个 Python 包,如果需要,它可以由主机的包管理器轻松管理,如 Yum 或 Apt。

如果您看到此消息,则可能是旧版本的 setuptools 或 Python。尝试使用 Distribute,它是 setuptools 的较新版本,并且向后兼容。这些软件包可能期望您已经拥有它。

https://pypi.python.org/pypi/distribute

编辑:此时,distribute 已合并到主setuptools项目中。只需安装最新版本的setuptools. 正如@wynemo 所指出的,您可能希望改用该--egg选项,因为它更适合那些不打算创建系统包进行分发的手动安装。

于 2013-03-06T21:41:47.380 回答
50

安装wheel解决了最近的这个问题pip(我使用的是 8.1.2):

pip install wheel
于 2016-03-24T18:50:54.633 回答
9

尝试像这样升级 setuptools:

pip install --upgrade setuptools

于 2014-10-29T14:03:23.037 回答
5

我遇到了这个问题。原来这是我的 pip 缓存上的文件权限有问题。

如果您在 pip 输出的开头看到一条消息,例如

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

你可能有同样的问题。您可以通过确保您对 pip 缓存(类似chown -R $(whoami) /home/ubuntu/.cache/pip)具有适当的文件权限来解决它,或者,如果您在 UNIX 上,您可以使用XDG_CACHE_HOMEenv var 将 pip 缓存位置设置为您拥有的某个文件夹。

于 2016-11-03T04:23:56.763 回答
1

我尝试了上述解决方案。但是,我只能解决问题,直到我这样做:

sudo pip3 install -U pip(对于python3)

于 2020-07-24T09:59:08.467 回答
0

当我尝试升级一个 python 包时,我的 macbook 也有这个问题。我在 OS X 中检查 pip 版本,它太旧了:1.1。我使用follow cmd将pip升级到1.5.6

easy_install -U pip

然后这个错误是固定的。

于 2014-09-24T06:42:13.553 回答