error: option --single-version-externally-managed not recognized
在使用pip install
各种包(包括PyObjC
and astropy
)时,我似乎突然开始遇到错误。
我以前从未见过这个错误,但它现在也出现在 travis-ci 构建中,但没有任何改变。
此错误是否表示分发过时?
中的一些错误指定的选项setup.py
?
完全不同的东西?
error: option --single-version-externally-managed not recognized
在使用pip install
各种包(包括PyObjC
and astropy
)时,我似乎突然开始遇到错误。
我以前从未见过这个错误,但它现在也出现在 travis-ci 构建中,但没有任何改变。
此错误是否表示分发过时?
中的一些错误指定的选项setup.py
?
完全不同的东西?
添加--egg
选项
pip install --egg SCons
我使用pip
版本 1.4.1
新更新:
安装最新版本的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
选项,因为它更适合那些不打算创建系统包进行分发的手动安装。
安装wheel
解决了最近的这个问题pip
(我使用的是 8.1.2):
pip install wheel
尝试像这样升级 setuptools:
pip install --upgrade setuptools
我遇到了这个问题。原来这是我的 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_HOME
env var 将 pip 缓存位置设置为您拥有的某个文件夹。
我尝试了上述解决方案。但是,我只能解决问题,直到我这样做:
sudo pip3 install -U pip
(对于python3)
当我尝试升级一个 python 包时,我的 macbook 也有这个问题。我在 OS X 中检查 pip 版本,它太旧了:1.1。我使用follow cmd将pip升级到1.5.6
easy_install -U pip
然后这个错误是固定的。