2017-02-14 4 views
14

Python 3.3.3을 사용하고 있으며 간단한 .py 스크립트에서 .exe를 빌드하려고합니다.Python, PyInstaller 오류 : "Encodings"라는 모듈 및 시스템 코덱이 없습니다.

import encodings 

print('Test') 

을 제대로 실행 :

내 스크립트는 다음과 같습니다.

나는이 명령을 pyInstaller 중에 그것을 구축 할 때 :

pyinstaller --onefile Testmodul.py

하고이 오류와 함께 나타 내 .EXE을 열려고 : Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

나는 이미 가져 오기 시도 내 testscript에서 '인코딩'모듈을하지만 여전히 작동하지 않습니다, 나는 또한 py2exe 시도하고 전혀 작동하지 않습니다.

내가 잘못 했습니까? 내 PATH에 뭔가를 설정해야합니까? "C : \ Python33"에 대한 올바른 경로가 이미 여기에 포함되어 있습니다.

EDIT :이 문제가있는 모든 사람들에게 : 나는 포기하고, 창문과 파이썬과 다른 모든 것들을 새로 설치 한 후에, 이전과 같은 방식으로 다시 시도해 보았고 문제없이 작동했다. 당신이 정말로 필사적이라면 시도 할만한 가치가 있습니다!

+0

'SYS 인코딩 데이터가 어디에 있습니까? ', 파이썬'인코딩'을 어떻게 작동시키는 지 알고 계셨습니까? 공개 사용의 모든 OS 세부 정보 평균 '등록되지 않음'을 초기화하십시오. 이 질문은 당신의'python 정보 수준'과 관련이 있습니다. 그래서 속임수 :이 코드는 유휴 코스에서 많은 권한을 부여 받고 더 많은 서비스/클래스에 등록 (비 공개)합니다. '영구/임시'스타일을 초기화 하시겠습니까? – dsgdfg

+0

네,'이게 낮은 수준의 코멘트'가 아닙니다. – dsgdfg

+0

http://stackoverflow.com/questions/5694706/py-initialize-fails-unable-to-load-the-file-system-codec Duplicate of –

답변

2

이것은 아마도 pyinstaller가 모듈을 처음부터 포함하지 않았기 때문일 수 있습니다. 당신은 2 개의 해결책을 시도 할 수있다. 의 경로를 지정)

2

  • pyInstaller 중에 --onefile --paths =/경로 /로/모듈 Testscript.py :

    1) 컴파일시 모듈의 경로를 지정합니다 을 .spec 파일 : (pyInstaller 중에 디렉토리에서) 첫번째

    • 실행이 명령을

      python Makespec.py --onefile /path/to/yourscript.py 
      
    • .spec 파일이 생겼습니다. 그것을 텍스트 편집기에서 열고 모듈 경로를 pathex에 추가하십시오.

      python Build.py /path/to/yourscript.spec 
      

    3)를 사용하여 숨겨진 수입 :

    • pyInstaller 중에 --onefile --hidden 가져 오기 = 모듈 이름 Testscript.py

      pathex=['C:\\path\\to\\module'] 
      
    • 다음, 프로그램을 구축

    • .spec 파일에서 숨김 가져 오기를 지정할 수도 있습니다.후크 파일에 인코딩 모듈을 수집하는 코드의 라인을 다음
+0

또는 (pyinstaller가 경로에 있으면 모든 디렉토리에서) 실행할 수 있습니다. "pyinstaller/path /to/your.spec" – Back2Basics

0

도움이 될 어떤 Windows 버전을 사용하고 있습니까 (7 또는 10)?

이 문제는 먼저 관리자 권한을 가진 사용자 EXE 파일을 실행하려고 할 수 있습니다, 그리고 다시 failling 경우, "실행하려고 ... 그것이 this issue 비슷합니다 가정 사용자 권한에 상대적 것 같다 Pyinstaller "에서 관리자 권한으로 실행되는 cmd.exe입니다.