Я создал небольшое приложение с Tkinter, которое позволяет извлечь некоторые данные из выбранных файлов Excel и создать красивый отчет. Я хочу поделиться этим с моими коллегами. Таким образом, я решил создать exe-файл из моего кода. После сборки приложения со следующим файлом «setup» для cx_freeze («python setup.py build»):
from cx_Freeze import setup, Executable
import cx_Freeze as cx
import sys
import os
import platform
libs_to_include = ["tkinter","os",'csv',"pandas","xlwings","xlsxwriter","numpy","matplotlib.backends.backend_tkagg",
"scipy.sparse.csgraph._validation","scipy"]
packages_to_include = ["tw_package"] + libs_to_include
libs_to_exclude = ['PyQt4', 'PyQt5', 'PySide', 'IPython','jupyter_client', 'jupyter_core', 'ipykernel','ipython_genutils',"scipy.spatial.cKDTree"]
include_files = [r"tw_package\resources"]
if platform.system() == "Windows":
base = "Win32GUI"
target_name = 'tw_app.exe'
PYTHON_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_DIR, 'tcl', 'tk8.6')
include_files += [
(os.path.join(PYTHON_DIR, 'DLLs', 'tcl86t.dll'), ''),
(os.path.join(PYTHON_DIR, 'DLLs', 'tk86t.dll'), '')
]
cx.setup(
name='Tw_App',
version='1.4',
author='Teodor Wisniewski',
description='Data driven applicatios',
packages=['tw_package'],
executables=[
cx.Executable('main_app.py', base=base,
targetName=target_name)],
options={
'build_exe': {
'packages': packages_to_include,
'includes': libs_to_include,
'excludes': libs_to_exclude,
'include_files': include_files
}
}
)
Я могу открыть свое приложение один раз, и оно работает, как я хочу, но как Я перезапускаю приложение, я получаю следующую ошибку: введите описание изображения здесь
"ModuleNotFoundError: нет модуля с именем" tw_package.application "Это довольно странно, что при первом запуске я не не получаю эту ошибку. Вот структура моего проекта:
main_app.py
setup.py
tw_package
In the tw_package, there are other sub packages.
У вас есть какие-либо идеи, почему мое приложение не может найти этот пакет? Это работает, если я открою его в своей IDE. Заранее спасибо .