Вопрос или проблема
После установки я установил python 3.5, используя conda, а затем удалил conda.
Перед удалением я мог получить доступ к pip и т.д. В терминале любая команда python приводит к следующему, как показано на скриншоте ниже:
jjplack@jjplack:~$ pip --version
Traceback (most recent call last):
File "/usr/lib/python2.7/site.py", line 554, in <module>
main()
File "/usr/lib/python2.7/site.py", line 536, in main
known_paths = addusersitepackages(known_paths)
File "/usr/lib/python2.7/site.py", line 272, in addusersitepackages
user_site = getusersitepackages()
File "/usr/lib/python2.7/site.py", line 247, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/lib/python2.7/site.py", line 237, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/lib/python2.7/sysconfig.py", line 587, in get_config_var
return get_config_vars().get(name)
File "/usr/lib/python2.7/sysconfig.py", line 533, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/usr/lib/python2.7/sysconfig.py", line 417, in _init_posix
from _sysconfigdata import build_time_vars
File "/usr/lib/python2.7/_sysconfigdata.py", line 6, in <module>
from _sysconfigdata_nd import *
ImportError: No module named _sysconfigdata_nd
Итак, в попытке исправить, я переключил bash обратно на python 2, но ошибка все равно происходит. Почему это происходит и как это исправить?
Вот bash_config:
export PYTHONHOME=/usr/bin
export PYTHONPATH=/usr/lib/python2.7
export PATH=$PYTHONPATH:$PATH
Чтобы исправить, просто введите в терминале: ln -fs /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata.py /usr/lib/python2.7/
Ответ или решение
Ошибка, с которой вы столкнулись, связана с отсутствием модуля _sysconfigdata_nd
. Давайте разберемся, почему это происходит и как можно исправить проблему.
Причины возникновения ошибки
-
Удаление Conda: Когда вы удалили Conda, вы, возможно, случайно изменили или удалили некоторые конфигурации или пути, которые были настроены в момент установки Python 3.5. Это могло привести к нарушению работы сред выполнения Python.
-
Неправильная конфигурация путей: Ваши текущие переменные среды указывают на Python 2.7, а не на Python 3.5. Это может вызвать конфликты, особенно если часть окружения ожидала Python версии 3.5.
-
Отсутствие
_sysconfigdata_nd
файла: Этот файл необходим Python для получения информации о системной конфигурации. Он, вероятно, отсутствует или не в том месте из-за изменений, вызванных удалением Conda.
Решение проблемы
Вот пошаговый план, который может помочь решить эту ошибку:
-
Убедитесь, что все файлы на месте:
- Вы уже пытались создать символическую ссылку на
_sysconfigdata.py
. Убедитесь, что эта команда выполнена корректно:ln -fs /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata.py /usr/lib/python2.7/
- Если файл действительно отсутствует, попробуйте переустановить Python 2.7 или обновить систему.
- Вы уже пытались создать символическую ссылку на
-
Проверка переменных окружения:
- Убедитесь, что переменные
PYTHONHOME
иPYTHONPATH
настроены корректно. Они должны быть согласованы с используемой версией Python. Например, если вы используете Python 2.7, проверьте, что путь соответствует установленной версии Python. - Отредактируйте
~/.bashrc
или~/.bash_profile
, чтобы переменные были выставлены корректно:export PYTHONHOME=/usr export PYTHONPATH=/usr/lib/python2.7 export PATH=$PYTHONPATH:$PATH
- Убедитесь, что переменные
-
Возврат к изначальной версии Python 3.5:
- Если проблема началась после удаления Conda, попробуйте снова установить необходимую версию Python с помощью системного пакетного менеджера (например, apt для Ubuntu):
sudo apt update sudo apt install python3.5
- Если проблема началась после удаления Conda, попробуйте снова установить необходимую версию Python с помощью системного пакетного менеджера (например, apt для Ubuntu):
-
Использование виртуальных окружений:
- Рассмотрите возможность использования
virtualenv
илиvenv
, чтобы изолировать окружение вашего проекта и избежать проблем с системными библиотеками.
- Рассмотрите возможность использования
Проблема с модулем _sysconfigdata_nd
достаточно распространена и, как правило, связана с неправильными настройками путей или недостаточными компонентами системы. Следуя вышеописанным шагам, вы должны быть в состоянии устранить эту ошибку и обеспечить стабильную работу вашего Python окружения.