使用六个依赖项安装错误

时间:2018-04-04 22:02:26

标签: python python-2.7 pip six

Running setup.py install for anyjson ... done Found existing installation: six 1.4.1 DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Uninstalling six-1.4.1: Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 778, in install requirement.uninstall(auto_confirm=True) File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 754, in uninstall paths_to_remove.remove(auto_confirm) File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove renames(path, new_path) File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 267, in renames shutil.move(old, new) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move copy2(src, real_dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2 copystat(src, dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat os.chflags(dst, st.st_flags) OSError: [Errno 1] Operation not permitted: '/tmp/pip-29Cml5-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

错误堆栈跟踪的片段。 在python上运行requirements.txt时。 这是六个原因。

忽略它无济于事。

sudo -H pip install -r requirements.txt --ignore-installed six Double requirement given: six==1.10.0 (from -r requirements.txt (line 107)) (already in six, name='six')

这篇文章没有帮助 - https://github.com/pypa/pip/issues/3165

1 个答案:

答案 0 :(得分:1)

有时,我要描述的Extras问题不会影响venvs。有时确实如此,但如果使用virtualenv是一个选项,那么在做其他任何事情之前都应该尝试。

所以,我们假设您要么不能这样做,要么您尝试过,这是其实际上没有帮助的情况之一。

首先,我要说的是以下所有的是可怕的,用于任何目的的除了的可怕建议安装苹果预装软件包的更新版本Extras与苹果的Python 2.7 OS X 10.7-10.13。读到这个没有完全问题的人,现在就停止阅读。

Apple的Python 2.7系统版本预装了一套漂亮的第三方软件包:

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/

他们不是试图让这些软件包保持最新,而是设计了一些内容,以便您可以轻松地在site-packages目录中使用较新版本对其进行遮蔽。这不是一个可怕的想法。

不幸的是,他们停止对这个OS X的几个版本进行任何严肃的维护,但是并没有停止运送它。特别是,他们从未更新过它以使用setuptoolspip,如果您正确安装pip(使用get-pip.py脚本而不是easy_install),阴影安装基本上永远不会起作用。

如果预先安装的easy_install仍然有效,那么 仍然可以安装阴影包。不要将它用于其他任何目的,但为了这个特定的目的,它是正确的工具。但它并不适用于每个OS X版本的每个软件包,所以它有点试验和错误。为了以防万一,您可能需要先备份Extrassite-packages

测试它的方法(假设easy_install成功,当然 - 如果它失败了一大堆错误,它显然不起作用......是时候恢复备份了)是启动Python,{ {1}},并查看import sixsix.__version__。如果它是six.__file__中的新版本,那么您就赢了。

如果还是不行,有可能解决您的问题哈克解决方法:暂时移动的文件site-packages别的地方,然后看是否Extras/lib/python/six-1.4.1-py2.7.egg-info成功安装到您的正常pip install six 。如果是这样,请恢复egg-info文件,然后再次测试阴影。

如果那个仍然不起作用......那么,可以手动安装,但我想在这一点上,并行安装两个Python 2.7的痛苦是管理你所拥有的那个很痛苦,所以我考虑安装另一个(python.org,Anaconda或Homebrew)并小心不要再次触摸Apple(site-packages可以帮助解决这个问题)