Я пытаюсь собрать exe-файл через Cx_Freeze, сценарии python без проблем запускаются перед сборкой.
После того, как Cx_Freeze скомпилирован и собран успешно, у меня возникают проблемы с загрузкой модуля cytoolz, где он говорит NameError: имя 'compose' не найдено.
Кажется, эта ошибка выдается из scikit-image модуля после цепочки вызовов ошибки:
До сих пор, следуя потенциальному разрешению, подобному этой ошибке, я пытался удалить / переустановить cytoolz с последующим обновлением conda, предложенным hafarazi (https://github.com/conda/conda/issues/3441). Однако, это не удалось.
Мой setup.py:
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
# When using flask-sqlalchemy add sqlite3.dll to include_files
import os.path
import scipy
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
print(PYTHON_INSTALL_DIR)
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
#This fix the issue where Scipy module _ni_support can't be properly imported during build.
includefiles_list=[]
scipy_path = os.path.dirname(scipy.__file__)
includefiles_list.append(scipy_path)
buildOptions = dict(
packages = ['flask','requests','sys','Jinja2','idna','encodings', 'asyncio','numpy', 'engineio','eventlet'],
excludes = [],
include_files=['templates/', 'static/', scipy_path]
)
import sys
base = 'Win32GUI' if sys.platform=='win32' else None
# base = 'Console'
executables = [
Executable('runserver.py', base=base)
]
setup(name='Test',
version = '1.0',
description = '',
options = dict(build_exe = buildOptions),
executables = executables)
#After build:
#rename Jinja folder with jinja if module jinja is not found error encoutnered
Моя платформа:
Windows 10
Python 3.6
Есть ли какие-либо предложения о возможном пути решения этой проблемы?