[python] ImportError : ‘encodings’라는 모듈이 없습니다.

최근에 우분투를 다시 설치하고 16.04로 업그레이드했으며 파이썬을 사용할 수 없습니다.

$ 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
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을 여러 번 다시 설치했습니다. 여기서 무엇을 할 수 있습니까? 감사합니다



답변

Python-3의 경우 가상 환경 파일을 제거해보십시오. 그리고 그것을 재설정합니다.

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

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


답변

Windows10 사용자의 경우.

Windows10에서 python3.4를 사용하고있었습니다. python3.5를 설치했습니다. PYTHONPATH, PYTHONHOME 환경 변수를 찾을 수 없습니다. CMD 콘솔에서 python을 명령하면 python3.4를 계속 사용합니다. python3.4를 삭제했습니다. 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
ModuleNotFoundError: No module named 'encodings'

Current thread 0x000011f4 (most recent call first):

python 2.7 (지금 제거됨)을 설치했으며 python 3.6을 설치하는 동안 “고급 옵션에서 환경 변수에 Python 추가”를 선택했습니다. 환경 변수 ” PYTHONHOME “및 ” PYTHONPATH “는 여전히 python2.7입니다.

마지막으로 ” PYTHONHOME “을 python3.6 설치 경로 로 수정 하고 ” PYTHONPATH ” 변수를 제거하여 해결했습니다 .


답변

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):

이 문제를 해결하는 것은 정말 간단합니다.

  1. Python3.x 버전을 다운로드하고 .exe 파일을 실행하면 시스템에서 Python을 설치할 위치를 사용자 지정할 수있는 옵션이 제공됩니다. 예를 들어 다음 위치를 선택했습니다 : C : \ Program Files \ Python36

  2. 그런 다음 시스템 속성을 열고 ” 고급 “탭으로 이동합니다 (또는 간단하게 수행 할 수 있습니다 : 시작> ” 환경 변수 ” 검색 > “시스템 환경 변수 편집”클릭으로 이동). “고급”탭에서 “환경 변수”를 클릭합니다. “환경 변수”라는 이름의 다른 창이 나타납니다.

  3. 이제 사용자 변수에 “경로 변수”에 나열된 올바른 Python 경로가 있는지 확인하십시오. 여기 내 예에서는 C : \ Program Files \ Python36 이 표시되어야합니다 . 찾을 수없는 경우 경로 변수 필드를 선택하고 편집을 클릭하여 추가하십시오.

  4. 마지막 단계는 동일한 창의 시스템 변수 아래에서 PYTHONHOMEPYTHONPATH 필드 를 다시 확인하는 입니다. 위에서 설명한 것과 동일한 경로가 표시되어야합니다. 거기에도 추가하지 않으면.

그런 다음 확인을 클릭하고 CMD 터미널로 돌아가서 파이썬을 확인하십시오. 이제 문제가 해결되어야합니다. 그것은 나를 위해 일했습니다.


답변

Ubuntu 17.10으로 마이그레이션하는 동안이 오류가 발생하여 문제가 해결되었습니다.

sudo dpkg-reconfigure python3

세션을 닫고 다시 연결해야 할 수도 있습니다.


답변

/lib/python3.5를 보면 파이썬 라이브러리에 대한 깨진 링크를 볼 수 있습니다. 작업 디렉터리에 다시 만듭니다.

다음 오류-

./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


답변

macOS Catalina로 업데이트 한 후 “ModuleNotFoundError : No module named ‘encodings”라는 문제가 발생했습니다.

시스템에 여러 버전의 Python이 설치되어있었습니다.

macOS 시스템에서 모든 Python 버전 (2.7 및 3.7.4)을 제거하고 최신 Python 3.8을 다시 설치하는 것이 저에게 효과적이었습니다.

macOS에서 Python을 제거하기 위해 여기의 지침을 따랐습니다. 습니다. Mac OS X 10.6.4에서 Python 2.7을 제거하는 방법은 무엇입니까?

위의 링크는 python 2.7 용이며 3.7에서도 동일하게 사용할 수 있습니다.