我似乎突然开始遇到错误error: option --single-version-externally-managed not recognized
时,使用pip install
与各种软件包(包括PyObjC
和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。尝试使用distribution,它是setuptools的新版本,并且向后兼容。这些包可能期望您已经拥有它。
https://pypi.python.org/pypi/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
(for python3)
当我尝试升级一个python包时,我的macbook也有这个问题。我检查了OS X的pip版本,它太旧了:1.1。我使用follow cmd将pip升级到1.5.6
easy_install -U pip