Вопрос или проблема
Причиной проблемы является сломанная установка Python на моем Linux OEL 6.9.
pip или easy_install сломаны, и я ничего не могу сделать.
Я получаю одну и ту же ошибку с обеих сторон:
# easy_install
Traceback (most recent call last):
File "/usr/bin/easy_install", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.6/site-packages/setuptools-39.2.0-py2.6.egg/pkg_resources/__init__.py", line 947, in <module>
class Environment(object):
File "/usr/lib/python2.6/site-packages/setuptools-39.2.0-py2.6.egg/pkg_resources/__init__.py", line 951, in Environment
self, search_path=None, platform=get_supported_platform(),
File "/usr/lib/python2.6/site-packages/setuptools-39.2.0-py2.6.egg/pkg_resources/__init__.py", line 180, in get_supported_platform
plat = get_build_platform()
File "/usr/lib/python2.6/site-packages/setuptools-39.2.0-py2.6.egg/pkg_resources/__init__.py", line 380, in get_build_platform
from sysconfig import get_platform
ImportError: No module named sysconfig
Я удалил python-setuptools, но это не помогло.
Я думаю, что пытался обновить последнюю версию pyOpenSSL, и это привело к сбою, и я не могу это исправить.
Мы используем Oracle Enterprise Linux 6.6 в виртуальной машине.
Как это исправить, не прибегая к установке Python 2.7, который не входит в официальные репозитории.
Спасибо.
Решение заключалось в следующем:
Полностью удалить python-setuptools
и удалить папку из /usr/lib/python2.6/site-packages/.
Затем вручную удалить из папки site-packages модуль: pyOpenSSL. Все пошло не так после попытки его обновить.
rm -rf pyOpenSSL-18.0.0-py2.6.egg/
Установить обратно через yum python-setuptools
. Теперь pip list может отображать модули, и больше нет ошибок с easy_install
.
Итак, setuptools
теперь должен быть установлен – можете подтвердить, что у вас есть модуль pkg_resources.py
? Выполните ls /usr/lib/python2.6/site-packages/pkg_resources.py; echo $?
.
Если эта команда выводит 0, удалите pkg_resources
пакет: sudo rm -rf /usr/lib/python2.6/site-packages/pkg_resources/
.
Удалите директорию только тогда, когда модуль pkg_resources
обнаружен! После этого pip должен снова заработать: выполните что-то вроде pip list
для проверки.
Если нет
Запустите:
python3 -m ensurepip --default-pip
pip3 install [package]
Ответ или решение
Устранение ошибок easy_install и pip, связанных с sysconfig в Python на Oracle Enterprise Linux 6.9
Введение
Пользователи часто сталкиваются с проблемами при установке и использовании Python на разных дистрибутивах Linux, особенно когда дело доходит до управления пакетами с помощью инструментов, таких как easy_install
и pip
. В данном случае мы рассмотрим ситуацию, когда в Oracle Enterprise Linux 6.9 возникла ошибка ImportError: No module named sysconfig
, что обычно сигнализирует о проблемах с установленными библиотеками.
Проблема
Проблема, с которой вы столкнулись, возникла, когда попытка обновления модуля pyOpenSSL
привела к повреждению системы пакетов Python. Следствием этой ошибки явилось то, что инструменты для управления пакетами, такие как easy_install
и pip
, перестали работать из-за отсутствия модуля sysconfig
.
Предварительные действия
-
Удаление
python-setuptools
: Первоначальным шагом, который вы предприняли, было удаление пакетаpython-setuptools
. Это было правильное решение, но для устранения проблемы необходимо было выполнить дополнительные шаги. -
Удаление остатков: Чтобы полностью устранить возможные конфликты, необходимо удалить оставшиеся файлы из каталога
site-packages
. В вашем случае это включало удаление директорииpyOpenSSL
и других связанных компонентов.
Решение
Шаг 1: Удаление остатков
Сначала выполните следующие команды в терминале для удаления пакетов и их остатков:
sudo rm -rf /usr/lib/python2.6/site-packages/pyOpenSSL-18.0.0-py2.6.egg/
sudo rm -rf /usr/lib/python2.6/site-packages/pkg_resources/
Убедитесь, что вы удалили не только сам пакет, но и все его зависимости, которые могут остаться в site-packages
.
Шаг 2: Переустановка python-setuptools
После завершения удаления остатков, выполните переустановку python-setuptools
через yum
:
sudo yum install python-setuptools
Эта команда установит чистую версию setuptools
, что должно решить проблемы с загрузкой модулей.
Шаг 3: Проверка
Теперь важно убедиться, что все библиотеки установлены корректно. Используйте следующую команду для проверки наличия модуля pkg_resources
:
ls /usr/lib/python2.6/site-packages/pkg_resources.py; echo $?
Если команда возвращает 0
, это значит, что модуль присутствует и установлен корректно.
Дополнительные рекомендации
Если решение выше не помогло или вам необходимо работать с более современными версиями Python, рассмотрите возможность установки Python 3
с помощью следующей команды:
sudo yum install python36
Затем используйте pip
для установки необходимых пакетов:
python3 -m ensurepip --default-pip
pip3 install [пакет]
Заключение
Существует несколько методов устранения ошибок, связанных с easy_install
и pip
. Однако наиболее важным шагом является систематическое удаление проблемных компонентов и повторная установка необходимых библиотек. Следуя описанным шагам, вы сможете восстановить работоспособность pip
и easy_install
, а также продолжить работу с Python без дальнейших затруднений.
Если у вас появляются дополнительные вопросы или трудности, не стесняйтесь обращаться за помощью к сообществу или профессиональным разработчикам.