Подтвердить что ты не робот

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'
4b9b3361

Ответ 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