ImportError: нет модуля с именем 'encodings'

Я недавно переустановил Ubuntu и сделал обновление до 16.04 и не могу использовать Python:

$ python manage.py runserver
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

На данный момент сам Python не работает

$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

Даже это предложение больше не работает:

unset PYTHONHOME
unset PYTHONPATH

Каждый раз, когда я исправляю это одним способом, он возвращается снова. Несколько ответов помогают исправить это временно, но не навсегда. Я переустанавливал python и python3 несколько раз. Что я могу сделать отсюда? Спасибо

 Timo12 сент. 2018 г., 07:29
Это неvenv ниdjango  проблема, это общая проблема Python.
 Moses Koledoye30 июн. 2016 г., 22:40
Это связано с Django или только с Python? Вы можете отредактировать свой вопрос с соответствующим тегом.
 codyc432130 июн. 2016 г., 22:44
просто питон, я случайно использовал django
 user70765012 авг. 2016 г., 05:25
Вы пытались удалить и переустановить и python2 и python3 черезapt?
 Brad Rhoads07 мар. 2018 г., 22:42
Я столкнулся с этим, используя стек Bitnami Django, когда пытался pip3 установить -r Requirments.txt в виртуальную среду. Он работал нормально, не используя виртуальную среду. Я не нашел время, чтобы выяснить, почему это было проблемой.
 HAL30 июн. 2016 г., 23:27
Похоже, что установка Python не завершена. Вы установили python через apt или скомпилировали и установили его из исходного кода? Бежатьwhich python чтобы проверить, какой двоичный файл Python у вас есть первым в $ PATH.
 Pradeep Vasamsetti28 июн. 2019 г., 10:20
MAC OSX ANACONDA Я недавно столкнулся с этой проблемой и занял много постов, чтобы найти правильное решение для решения проблемы. И многие из них являются временными хаки. Чтобы исправить это раз и навсегда, я написал краткое решение этогоВот.

Ответы на вопрос(7)

Для пользователя Windows10.

Я использовал python3.4 на Windows10. Я установил python3.5. Я не смог найти переменную env PYTHONPATH, PYTHONHOME. Если я командую python в консоли CMD, он продолжает использовать python3.4. Я удалил python3.4. Всякий раз, когда я командую python в консоли CMD, он начинает показывать ошибку, как показано ниже.

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Я искал, чтобы выяснить мою проблему. Решение было простым. Когда вы устанавливаете python3.5, вы можете установить и проверитьДобавить Python в переменные окружения в Дополнительные параметры.

Я просто оставляю здесь дело на случай, если кто-то сталкивается с подобными проблемами, чтобы не тратить свое драгоценное время на выяснение.

По той же проблеме на Windows7

Вы увидите такую ​​ошибку, если ваши переменные окружения / системные переменные установлены неправильно:

Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x00001db4 (most recent call first):

Исправить это очень просто:

Когда вы загружаете версию Python3.x и запускаете файл .exe, вы можете указать, где в вашей системе вы хотите установить Python. Например, я выбрал это место:C: \ Program Files \ Python36

Затем откройте свойства системы и перейдите кпродвинутый«Вкладка (или вы можете просто сделать это:переменные среды«> Нажмите« Изменить системные переменные среды ».) На вкладке« Дополнительно »найдите« Переменные среды »и щелкните по нему. Появится другое окно с именем« Переменные среды ».

Теперь убедитесь, что ваши пользовательские переменные имеют правильный путь Python, указанный в «Переменной пути». В моем примере здесь вы должны увидетьC: \ Program Files \ Python36, Если вы не нашли его там, добавьте его, выбрав поле «Переменная пути» и нажав «Изменить».

Последний шаг - перепроверитьPYTHONHOME а такжеPYTHONPATH поля в системных переменных в том же окне. Вы должны увидеть тот же путь, как описано выше. Если не добавить это там тоже.

Затем нажмите OK и вернитесь к терминалу CMD и попробуйте проверить наличие Python. Теперь проблема должна быть решена. Это сработало для меня.

 Andrés Marafioti11 нояб. 2017 г., 19:35
Это точно так же на win10. В моем случае это были только PYTHONHOME и PYTHONPATH, установленные на более старую версию.
 voo_doo08 мая 2018 г., 09:21
@dotpy_novice Не могли бы вы выделить шаг 4 в деталях? У меня не было никакого пути, указанного в моих пользовательских переменных, и я добавил, как вы сказали в шаге 3. Теперь я немного колеблюсь, чтобы продолжить. НетPYTHONHOME а такжеPYTHONPATH в системных переменных. Должен ли я создать их сам, если да, что я должен вставить дляИмя переменной а такжеЗначение переменной?

Посмотрите /lib/python3.5 и вы увидите неработающие ссылки на библиотеки Python. Пересоздайте его в рабочий каталог.

Следующая ошибка -

./script/bin/pip3
Failed to import the site module
Traceback (most recent call last):
  File "/home/script/script/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/home/script/script/lib/python3.5/site.py", line 683, in main
    paths_in_sys = addsitepackages(paths_in_sys)
  File "/home/script/script/lib/python3.5/site.py", line 282, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 204, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 173, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
  File "/home/script/script/lib/python3.5/types.py", line 166, in <module>
    import functools as _functools
  File "/home/script/script/lib/python3.5/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/home/script/script/lib/python3.5/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'

исправлено так -https://askubuntu.com/questions/907035/importerror-cannot-import-name-remove-dead-weakref

cd my-virtualenv-directory
virtualenv . --system-site-packages

Я столкнулся с той же проблемой под Windows7. Сообщение об ошибке выглядит так:

Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x000011f4 (most recent call first):

Я установил Python 2.7 (теперь удален), и я установил флажок «Добавить Python к переменным среды в Дополнительные параметры» при установке Python 3.6. Получается, что переменная среды "PYTHONHOME" а также "PYTHONPATH"все еще python2.7.

Наконец я решил это изменитьPYTHONHOMEmsgstr "установить python3.6 путь и удалить переменную"PYTHONPATH».

Решение Вопроса

Для Python-3 попробуйте удалить файлы виртуальной среды. И сбросить его.

rm -rf venv
virtualenv -p /usr/bin/python3 venv/
source env/bin/activate
pip install -r requirements.txt

https://wiki.ubuntu.com/XenialXerus/ReleaseNotes#Python_3

 Amar01 нояб. 2017 г., 14:41
@DeepakChawla needs.txt должен присутствовать в pwd, откуда вы вводите эту команду, и не имеет ничего общего с созданием среды, это способ установки пакетов в пакетном режиме.
 Jay Modi26 мар. 2019 г., 19:15
Да!source venv/bin/activate
 alireza15 апр. 2019 г., 13:34
не работа для меня.
 Keith25 окт. 2018 г., 05:50
Не должно ли это бытьsource venv/bin/activate?
 MadPhysicist16 апр. 2017 г., 03:14
Большой! Спасибо за то, что научили меня устанавливать python3 в среду, используяvirtualenv команда! По какой-то причине мне понадобилось около 2 месяцев, чтобы найти его. Удивительно ...
 Divij Sehgal21 апр. 2017 г., 11:24
Здравствуйте, я пытался сделать это на моем устройстве Amazon AMI (на основе RHEL), но это не работает. Любым другим способом это можно решить?
 chandresh06 июн. 2018 г., 08:08
Интересно, есть ли какие-нибудь библиотеки imp в виртуальной среде env и delete, действительно ли это обходной путь?
 Deepak Chawla19 авг. 2017 г., 18:19
когда я ввел последнюю команду, она выдаёт мне ошибку ниже. Можете ли вы решить ... Не удалось открыть файл требований: [Errno 2] Нет такого файла или каталога: 'needs.txt'
 Xavitoj Cheema09 апр. 2018 г., 14:34
в основном это версия по умолчанию для python3 в Ubuntu 16.04 - 3.5.2, которая отличается от предыдущих версий Ubuntu. Поэтому, если вы создали виртуальные среды с различными версиями Python3, вы столкнетесь с этой проблемой, и это решение является правильным.

Я также мог бы это исправить. PYTHONPATH и PYTHONHOME были причиной.

запустить это в терминале

   touch ~/.bash_profile
   open ~/.bash_profile

а затем удалите все ненужные части этого файла и сохраните. Я не знаю, как это рекомендуется делать!

У меня была эта ошибка во время миграции на Ubuntu 17.10, и это решило проблему:

sudo dpkg-reconfigure python3

Может быть, вам придется закрыть сеанс и восстановить соединение.

 Xavitoj Cheema09 апр. 2018 г., 14:28
У меня 16.04, это не решило мою проблему. Я просто пытаюсь понять, почему это произошло
 Timo14 сент. 2018 г., 09:15
На18.04 Lubuntuэто говоритFatal Python error: Py_Initialize: Unable to get the locale encoding
 Timo10 сент. 2018 г., 22:02
Та же проблема в Ubuntu 16.4. Должен ли я переустанавливать Ubuntu?/usr/sbin/dpkg-reconfigure: python3 ist kaputt oder nicht komplett installiert

Ваш ответ на вопрос