web-dev-qa-db-ja.com

Python、PyInstallerエラー:「Encodings」という名前のモジュールがなく、システムコーデックがありません

Python 3.3.3を使用しており、単純な.pyスクリプトから.exeをビルドしようとしています。

私のスクリプトは次のようになります:

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'

私は既にテストスクリプトに 'encodings'モジュールをインポートしようとしましたが、それでも機能しません。py2exeも試しましたが、まったく機能しません。

私が間違っていることはありますか? PATHに何かをセットアップする必要がありますか? 「C:\ Python33」への正しいパスはすでにそこに含まれています。

編集:この問題を抱えているすべての人に:私はあきらめました、そしてWindowsとpythonと他のすべてのものを新たにインストールした後、以前と同じようにもう一度試してみましたが、それなしでうまくいきました問題..あなたが本当に絶望的であるなら、それは試してみる価値があります!

14
Zesa Rex

これはおそらく、pyinstallerがそもそもモジュールを含んでいないためです。次の解決策のいずれかを試してください。

1)コンパイル中にモジュールへのパスを指定します。

  • pyinstaller --onefile --paths =/path/to/module Testscript.py

2).specファイルからのパスを指定します。

  • 最初に(pyinstallerのディレクトリで)このコマンドを実行してください:

    python Makespec.py --onefile /path/to/yourscript.py
    
  • これで.specファイルができました。テキストエディターで開き、モジュールへのパスをpathexに追加します。

    pathex=['C:\\path\\to\\module']
    
  • 次に、プログラムをビルドします。

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

3)非表示のインポートを使用します。

  • pyinstaller --onefile --hidden-import = modulename Testscript.py
  • .specファイルでhidden-importを指定することもできます。
2
A.Sherif

どのバージョンのWindowsを使用していますか(7または10)?

この問題はユーザー特権に関連しているようです...そして、それが この問題 に類似していると仮定すると、最初にexe管理者権限のあるファイル。再度失敗する場合は、管理者権限で実行しているcmd.exeから「Pyinstaller」を実行してみてください。

0
A STEFANI

hook-encodings.pyという名前のフックファイルをC:\Python\Lib\site-packages\PyInstaller\hooksの場所に追加し、次のコード行を追加して、フックファイル内のエンコーディングモジュールを収集します

from PyInstaller.utils.hooks import collect_submodules

hiddenimports = collect_submodules('encodings')

これはうまくいくかもしれません、この答えはあなたを助けるかもしれません DjnagoプロジェクトのPyinstallerエラー "ImportError:No module named 'Django.contrib.admin.apps'"

0