ImportError : 'encodings'라는 모듈이 없습니다.


106

최근에 우분투를 다시 설치하고 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을 여러 번 다시 설치했습니다. 여기서 무엇을 할 수 있습니까? 감사합니다


이것은 Django와 관련이 있습니까 아니면 Python과 관련이 있습니까? 적절한 태그로 질문을 편집 할 수 있습니다.
Moses Koledoye

2
파이썬, 내가 장고를 사용하는 일이
codyc4321

파이썬 설치가 불완전한 것 같습니다. apt를 통해 파이썬을 설치했거나 소스에서 컴파일하고 설치 했습니까? which python$ PATH에서 가장 먼저 가지고있는 Python 바이너리를 확인하려면 실행하십시오 .
HAL

python2와 python3을 모두 제거하고 다시 설치 했습니까 apt?

pip3 install -r requirments.txt int a virtual env를 시도 할 때 Bitnami Django 스택을 사용하여 이것을 만났습니다. 가상 환경을 사용하지 않고 잘 작동했습니다. 왜 이것이 문제인지 알아 내지 못했습니다.
Brad Rhoads 2018 년

답변:


88

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


2
큰! virtualenv명령을 사용하여 python3을 env에 설치하는 방법을 가르쳐 주셔서 감사합니다 ! 왠지 찾아내는 데 약 2 개월이 걸렸습니다. 놀라운 ...
MadPhysicist

2
안녕하세요, Amazon AMI 디바이스 (RHEL 기반)에서이 작업을 시도했지만 작동하지 않습니다. 다른 방법으로 해결할 수 있습니까?
Divij Sehgal

1
나는 마지막 명령을 입력 할 때 당신이 해결하시기 바랍니다 수있는 오류 아래 저를 제공합니다 ... 열 수 없습니다 요구 사항 파일 : [errno를 2] 해당 파일이나 디렉토리 : 'requirements.txt'
디팍 Chawla는

1
@DeepakChawla requirements.txt는이 명령을 실행하는 pwd에 있어야하며 배치 모드에서 패키지를 설치하는 방법 인 환경 생성과 관련이 없습니다.
Amar '

7
그럴까요 source venv/bin/activate?
Keith

16

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 추가 를 선택할 수 있습니다 .

비슷한 문제가있는 사람이 여기를 방문하여 소중한 시간을 낭비하지 않도록 여기를 떠납니다.


11

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 " 변수를 제거하여 해결했습니다 .


9

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 터미널로 돌아가서 파이썬을 확인하십시오. 이제 문제가 해결되어야합니다. 그것은 나를 위해 일했습니다.


이것은 win10에서도 똑같습니다. 제 경우에는 PYTHONHOME 및 PYTHONPATH가 이전 설치로 설정되었습니다.
Andrés Marafioti 2011

@dotpy_novice 4 단계를 자세히 강조해 주시겠습니까? 사용자 변수에 경로가 나열되지 않았고 3 단계에서 말한대로 추가했습니다. 이제 진행하는 것이 조금 주저합니다. 시스템 변수 에는 PYTHONHOMEPYTHONPATH 가 없습니다 . 직접 만들어야한다면 변수 이름변수 값에 무엇을 삽입해야 합니까?
bit_scientist

6

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

sudo dpkg-reconfigure python3

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


16.04가 있지만 문제가 해결되지 않았습니다. 이해하려고 애쓰는 중이 야 왜 이런 일이 일어 났는지
Xavitoj Cheema

우분투 16.4에서도 같은 문제입니다. 우분투를 다시 설치해야합니까? /usr/sbin/dpkg-reconfigure: python3 ist kaputt oder nicht komplett installiert
티모

켜기 18.04 Lubuntu, 그것은 말한다Fatal Python error: Py_Initialize: Unable to get the locale encoding
티모

1

/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

1

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에서도 동일하게 사용할 수 있습니다.


0

비슷한 문제가있었습니다. 내 컴퓨터에 anaconda와 python이 모두 설치되어 있었고 Python 종속성은 Anaconda 디렉토리에서 가져 왔습니다. Anaconda를 제거했을 때이 오류가 발생하기 시작했습니다. 나는 추가 PYTHONPATH했지만 여전히 가지 않았다. 나는 python -version그것이 여전히 아나콘다 경로를 취하고 있다는 것을 확인하고 알게되었습니다. Anaconda3 디렉토리를 수동으로 삭제해야했고 그 후 파이썬이 PYTHONPATH.
문제가 해결되었습니다!


0

내 Mac을 macOS Catalina로 업데이트 할 때 pipenv. Pipenv는 a virtualenv를 생성하고 관리 하므로 @ Anoop-Malav의 이전 제안은 동일합니다. pipenv를 사용하여 현재 디렉토리를 기반으로 가상 환경을 제거하고 재설정하기 만하면됩니다.

pipenv --rm
pipenv shell  # recreate a virtual env with your current Pipfile

0

제 경우에는 anaconda 폴더의 권한을 변경하면 효과가 있습니다.

sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda   

-1

이것이 Google의 첫 번째 결과이기 때문에 감옥에 문제가있는 다른 사람을 위해 다음 정보를 추가하고 싶습니다.

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
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f079b16d740 (most recent call first):
Aborted (core dumped)

파이썬을 감옥으로 가져 오려고 할 때 종속성과 /usr/lib/pythonX.Y를 [JAIL] / usr / lib /에 연결해야합니다. 도움이 되었기를 바랍니다.


@matt에게 pythonx.y를 '감옥'하는 단계를 제공 할 수 있습니까?
Pranav

@Pranav 나는이 스크립트를 사용하고 있습니다 : gist.github.com/williamhaley/5a499cd7c83aa0e01eaf 그런 다음 copy_binary pythonX.Y를 실행 한 다음 실제 루트 /usr/lib/pythonX.Y에서 라이브러리를 찾을 수 있습니다. 여기서 XY는 파이썬 버전입니다 (For 예제 python3.7). 감옥 / usr / lib /에 복사하면 설정이 완료됩니다. 건배
Matt

-2

파일-> 설정-> 프로젝트 탭에서 프로젝트 인터프리터 선택-> 작은 기어 아이콘 클릭-> 추가-> 시스템 인터프리터-> 드롭 다운 메뉴에서 원하는 Python 버전 선택

이것은 나를 위해 일하는 것 같았다


이 그의 문제가되지 않습니다
NotSoShabby

-12

이 문제를 해결할 수도 있습니다. PYTHONPATH 및 PYTHONHOME이 원인입니다.

터미널에서 실행

   touch ~/.bash_profile
   open ~/.bash_profile

이 파일의 쓸모없는 부분을 모두 삭제하고 저장하십시오. 그렇게하는 것이 얼마나 권장되는지 모르겠습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.