Исполняемый файл cx_freeze - Py_Initialize: невозможно загрузить кодек файловой системы - PullRequest
0 голосов
/ 30 мая 2018

Я использую cx_freeze, чтобы упаковать свой скрипт Python в качестве отдельного исполняемого файла.Exe работает нормально на машине, в которой он был упакован (с python 3.5 и всеми соответствующими пакетами).

Но когда я скопировал созданную папку cx_freeze на другую машину, я получил эту ошибку: enter image description here

Мой скрипт cx_freeze:

import sys
import numpy
import os.path
from cx_Freeze import setup, Executable

os.environ['TCL_LIBRARY'] = r'C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\tcl\tk8.6'


setup(
    name = "DocSum",
    version = "1.0",
    options = {"build_exe": {"packages":["idna","asyncio", "encodings","numpy", "jinja2.ext"]}},
    description = "DocSumRESTfulServer",
    executables = [Executable("DocSumRESTfulServer.py", base = None)]
    )

Есть идеи, в чем может быть причина?Я думал, что exe-файл должен быть автономным (запускаться на машинах без python).Я не прав?

Спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Кажется, что не все зависимости были успешно скомпилированы.Если вы хотите иметь автономный исполняемый файл, я рекомендую pyinstaller .

Просто установите pip, а затем:

pyinstaller.exe --onefile  yourFile.py

Флаг --onefile используется для упаковки всегов один исполняемый файл.Ваш исполняемый файл будет найден в папке dist .

Вы также можете попробовать этот site .

...