Pip терпит неудачу с AttributeError: объект 'module' не имеет атрибутов 'wraps'
Я нахожусь на Fedora. Недавно я обновил свою систему с F20 до F21. Пип отлично работал на F20, но после обновления до F21 что-то должно было пойти не так. Пип перестает работать, каждый раз, когда я вхожу в команду 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'
Ответы
Ответ 1
Хорошо, попробовав все решения, которые я смог сделать Google без каких-либо результатов. Я попытался рискнуть и немного поиграть. Это может быть не самое безопасное решение, но оно отлично работает для меня.
Увидев, что python get-pip.py
привело к:
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
даже когда у меня был удаленный вывод.
Я перешел к /usr/lib/python2.7/site-packages/
, чтобы узнать два каталога папок: pip
и pip-6.0.8.dist-info
. Удалено сразу. Затем повторите попытку python get-pip.py
. Вуаля! он работал.
Ответ 2
случилось со мной в окнах с активизацией python fresh install
Я только что использовал easy_install, чтобы понизить пик
easy_install pip==7.1.2
а затем он работал...
Ответ 3
Это произошло в моей ситуации после того, как я переместил каталог virtualenv (вместе с проектом) в новое место, которое я, очевидно, не должен был делать (прочитав документ сейчас), в руководстве четко указаны некоторые [полные] жестко закодированные пути включены в среду.
Удаление bin/, include/, lib/и lib64/каталогов, а затем воссоздание virtualenv решило проблему для меня.
Я искал поиск и исправление полных путей в среде, но его исправление повсюду (кроме файлов bin/activate *) не выглядело тривиальным.
Ответ 4
Если вы воссоздаете виртуальный env, содержащий различный pip -версию, вы можете запустить такой сценарий:
# 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'
Теперь среда содержит фрагменты пипетки из предыдущей установки. Чтобы исправить это, вы можете использовать опцию - 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, если (например, bin/python) присутствует.
# [ ! -x /tmp/env/bin/python ] virtualenv /tmp/env
Ответ 5
Используйте easy_install для установки предыдущей версии pip
easy_install pip==7.0.2
Затем используйте pip для установки версии, с которой вы спустились, в моем случае это было 9.0.1
pip install pip==9.0.1
Ответ 6
Я нахожусь в Mac OS, но смог исправить эту ошибку, выполнив mkvirtualenv --system-site-packages XXXX
, а не mkvirtualenv XXXX
.
Запуск pip install -r requirements.txt
в виртуальной среде давал мне AttributeError: 'module' object has no attribute 'wraps'
раньше и больше не работает.
Ответ 7
Это сработало:
mv /usr/lib/python2.7/site-packages/pip* ./
yum reinstall python-pip