私はcx_Freezeで配布したいコンソールモードプログラムを持っています。私は、新しくインストールしたwin 10マシンにpython 3.6.3(amd64とwin32バージョンの両方)をダウンロードしました。私は車輪(ピピからではない)からcx_Freeze 5.1をインストールしました。次に、amd64とwin32の両方のプログラムをビルドしました。私はそれを構築している同じマシン上のexeファイルを実行しようとすると、私はこのエラーを取得する:cx_freeze:ModuleNotFoundErrorとプログラムが動作を停止しました
Fatal Python error: Py_Initialize: unable to load the file system codec
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\encodings\__init__.py", line 31, in <module>
ModuleNotFoundError: No module named 'codecs'
私は両方のアーキテクチャで同じエラーを持っています。私は明示的に「コーデック」のパッケージを指定している、言い換えれば
#!/usr/bin/env python3
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {
"packages": [
"os", "io", "copy", "struct", "hashlib", "random",
"urllib", "pycurl", "json", "multiprocessing",
"cryptography",
"tornado", "watchdog", "pathtools"
],
"includes": [
"cryptography", "urllib.parse",
],
"include_files": ["tmp", "server.ini", "client.ini"],
"excludes": ["tkinter"],
}
setup(
name="BlindBackup",
version="1.0",
description="BlindBackup",
options={"build_exe": build_exe_options},
executables=[
Executable("backup.py", base=None),
Executable("bsync.py", base=None),
Executable("server.py", base=None),
]
)
:セットアップファイルは次のようになります。
どうしたのですか?
UPDATE配布ディレクトリにlibrary.zipというファイルがあります。それにはcodecs.pycが含まれていますが、exeファイルには表示されません。私はジップからすべてのファイルを抽出した場合、私は別のエラーメッセージが表示されます:
C:\Python\Projects\blindbackup\build\exe.win-amd64-3.6>backup.exe
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Program Files\Python36\lib\site-packages\cx_Freeze\initscripts\Console.py", line 22, in run
importer = zipimport.zipimporter(os.path.dirname(os.__file__))
zipimport.ZipImportError: not a Zip file
私はこの問題はlibrary.zipファイルからモジュールをインポートしようとするコードであることを推測しますか?しかし、それを修正する方法がわからない。
私は、cx_freezeを使用するたびにexeが正常に動作するように特別なマッサージが必要であることがわかりました。 –