我在Fedora上。我最近将我的系统从F20升级到F21。 Pip在F20上工作正常,但在升级到F21之后肯定会出现问题。 Pip停止工作,每次输入命令pip <anything>
时,都会发生以下错误:
Traceback (most recent call last):
File "/usr/bin/pip", line 7, in <module>
from pip import main
File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 12, in <module>
from pip.commands import commands, get_summaries, get_similar_commands
File "/usr/lib/python2.7/site-packages/pip/commands/__init__.py", line 6, in <module>
from pip.commands.bundle import BundleCommand
File "/usr/lib/python2.7/site-packages/pip/commands/bundle.py", line 6, in <module>
from pip.commands.install import InstallCommand
File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 5, in <module>
from pip.req import InstallRequirement, RequirementSet, parse_requirements
File "/usr/lib/python2.7/site-packages/pip/req/__init__.py", line 3, in <module>
from .req_install import InstallRequirement
File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 31, in <module>
from pip.utils import (
File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 59, in <module>
def rmtree(dir, ignore_errors=False):
File "/usr/lib/python2.7/site-packages/pip/_vendor/retrying.py", line 47, in wrap
@six.wraps(f)
AttributeError: 'module' object has no attribute 'wraps'
答案 0 :(得分:14)
好的,在尝试了所有解决方案后,我可以谷歌没有看到结果。我试图冒险并玩一点。这可能不是最安全的解决方案,但它对我来说很好。
看到python get-pip.py
导致:
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
即使我已经卸载了pip。
我转到/usr/lib/python2.7/site-packages/
找到两个点目录: pip
和 pip-6.0.8.dist-info
。立即删除了两个。然后再次尝试python get-pip.py
。瞧!它奏效了。
答案 1 :(得分:7)
使用activestate python全新安装在Windows上发生 我刚刚用easy_install降级了点子
easy_install pip==7.1.2
然后它正在工作......
答案 2 :(得分:7)
使用easy_install安装先前版本的pip
easy_install pip==7.0.2
然后使用pip安装你下载的版本,在我的情况下是9.0.1
pip install pip==9.0.1
答案 3 :(得分:3)
如果您重新创建包含不同点 -version的虚拟环境,您可以遇到这样的情况:
# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
# /tmp/env/bin/pip install --upgrade pip
(...)
Found existing installation: pip 1.5.6
Uninstalling pip:
Successfully uninstalled pip
Successfully installed pip
# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
# /tmp/env/bin/pip install --upgrade pip
(...)
AttributeError: 'module' object has no attribute 'wraps'
环境现在包含先前安装的pip片段。要解决此问题,您可以使用 - clean 选项:
# virtualenv --clear /tmp/env
Deleting tree /tmp/env/lib/python2.7
Not deleting /tmp/env/bin
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
然后virtualenv将在安装新环境之前清除路径。
如果您想要更新行为,可以跳过virtualenv if(例如)bin / python)。
# [ ! -x /tmp/env/bin/python ] && virtualenv /tmp/env
答案 4 :(得分:1)
在我将virtualenv目录(以及项目)移动到新位置之后发生了这种情况,我显然不应该这样做(现在阅读文档)手册清楚地说明了一些[完整的] ]硬编码路径包含在环境中。
删除bin /,include /,lib /和lib64 /目录,然后重新创建virtualenv为我解决了这个问题。
我确实在寻找和修复环境中的完整路径,但是在任何地方修复它(除了在bin / activate *文件中)并不是显而易见的。
答案 5 :(得分:0)
我在Mac OS上,但能够通过执行mkvirtualenv --system-site-packages XXXX
而不是mkvirtualenv XXXX
来修复此错误。
在虚拟环境中运行pip install -r requirements.txt
之前给了我AttributeError: 'module' object has no attribute 'wraps'
,现在不再给我。
答案 6 :(得分:-1)
这有效:
mv /usr/lib/python2.7/site-packages/pip* ./
yum reinstall python-pip