Ошибка атрибута с помощью pip
Это головокружение, поэтому я отправляю этот вопрос ПОСЛЕ того, как изучил и прочитал все предыдущие сообщения по этой проблеме.
Запуск OSX 10.9 Python 2.7 no virtualenv
pip install awssh
Downloading/unpacking awssh
Downloading awssh-0.1.tar.gz
Cleaning up...
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/basecommand.py",
line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/commands/install.py",
line 274, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/req.py",
line 1215, in prepare_files
req_to_install.run_egg_info()
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/req.py",
line 288, in run_egg_info
logger.notify('Running setup.py (path:%s) egg_info for package %s' % (self.setup_py, self.name))
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/req.py",
line 265, in setup_py
import setuptools
File "/Library/Python/2.7/site-packages/setuptools/__init__.py", line 11, in <module>
from setuptools.extension import Extension
File "/Library/Python/2.7/site-packages/setuptools/extension.py", line 8, in <module>
File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 21, in <module>
packaging = pkg_resources.packaging
AttributeError: 'module' object has no attribute 'packaging'
Ответы
Ответ 1
Эта ошибка вызвана наличием устаревшей версии pkg_resources
. Чтобы избавиться от ошибки, сделайте следующее:
-
Запустите сеанс python, импортируйте pkg_resources
и просмотрите файл, из которого он загружен:
In [1]: import pkg_resources
In [2]: pkg_resources.__file__
Out[2]: '/usr/lib/python2.7/dist-packages/pkg_resources.pyc'
-
Удалите этот файл (и связанный с ним файл *.py
):
$ sudo rm /usr/lib/python2.7/dist-packages/pkg_resources.py*
-
Что это! Повторно запустите установку; он должен завершиться без ошибок:
$ sudo pip install awssh
Предупреждение
Если вы находитесь в системе на базе Linux на базе Debian, этот файл может быть установлен через пакет python-pkg-resources
. Поэтому обновление или переустановка этого пакета приведет к восстановлению устаревшего модуля! Также имейте в виду, что вы возитесь с файлом, который должен контролироваться apt
.