2017-02-14 21 views
14

Używam Pythona 3.3.3 i próbowałem zbudować .exe z prostego skryptu .py.Python, PyInstaller error: brak modułu o nazwie "Encodings" i kodek systemowy brakuje

Mój skrypt wygląda tak:

import encodings 

print('Test') 

i wykonuje poprawnie.

Kiedy próbuję zbudować go z PyInstaller z tym poleceniem:

pyinstaller --onefile Testmodul.py

i spróbować otworzyć exe pokazuje się z tego błędu: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

Próbowałem już importowania "Kodowanie" modułu w moim testcript, ale nadal nie działa, próbowałem również py2exe i nie działa w ogóle.

Czy coś jest nie tak? Czy muszę ustawić coś w mojej PATH? właściwa ścieżka do "C: \ Python33" jest już tam zawarta.

EDYCJA: Dla wszystkich z tym problemem: zrezygnowałem, a po świeżej instalacji systemu Windows i python i wszystkich innych rzeczy, spróbowałem ponownie, tak samo jak wcześniej i działało bez problemu .. warto spróbować, jeśli jesteś naprawdę zdesperowany!

+0

Czy masz jakieś pojęcie "gdzie są twoje dane kodowania SYS", jak pracować python 'encodings'? Wszystkie szczegóły systemu operacyjnego w użytku publicznym? Inicjalizuj słowo "niezarejestrowane". To pytanie dotyczy twojego 'poziomu informacji Pythona'. A więc sztuczka: ten kod działa na luźnych warunkach cos, udziela wielu uprawnień i jest zarejestrowany (nie publiczny) w większej liczbie usług/klas. Zainicjować dla jakiego stylu 'stały/tymczasowy'? – dsgdfg

+0

Tak, wiem "to nie jest komentarz niskiego poziomu"! – dsgdfg

+0

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

Odpowiedz

2

Jest tak prawdopodobnie dlatego, że aplikacja do usuwania pirotechników nie uwzględniła modułu w pierwszej kolejności. możesz wypróbować 2 rozwiązania.

1) Określ ścieżkę do modułu podczas kompilacji:

  • pyinstaller --onefile --paths =/ścieżka/do/modułu Testscript.py

2) Określ ścieżkę od plik .spec:

  • run komenda ta pierwsza (w katalogu pyinstaller za):

    python Makespec.py --onefile /path/to/yourscript.py 
    
  • Teraz masz plik .spec. otwórz go w edytorze tekstu i dodaj ścieżkę do swoich modułów do pathex.

    pathex=['C:\\path\\to\\module'] 
    
  • wtedy budować swój program:

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

3) używają ukrytych Import:

  • pyinstaller --onefile --hidden-import = modulename Testscript.py
  • możesz również podać ukryty import w pliku .spec.
+0

Albo możesz (z dowolnego katalogu, jeśli aplikacja jest na ścieżce) uruchomić "pyinstaller /path /to/your.spec" – Back2Basics

0

Którą wersję systemu Windows używasz (7 lub 10)?

Kwestia ta wydaje się być w stosunku do przywileju użytkownika ... i zakładając, że jest podobny do this issue, można najpierw spróbować uruchomić exe ​​ plik z uprawnieniami administratora, a jeśli jest on ponownie failling, spróbuj uruchomić " Pyinstaller "z cmd.exe działa z prawami administratora.

Powiązane problemy