I'm creating a GUI desktop program with Python using Tkinter and now trying to convert a python file into an executable with cx_Freeze but when I run
python setup.py build
I get an error saying
AttributeError: 'list' object has no attribute 'main_script'
Detail as below:
Traceback (most recent call last):
File "H:\OneDrive\Jobs\Dev\TMS\setup.py", line 17, in cx_Freeze.setup( File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\site-packages\cx_Freeze\dist.py", line 397, in setup distutils.core.setup(**attrs) File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\core.py", line 148, in setup dist.run_commands() File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 966, in run_commands self.run_command(cmd) File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command cmd_obj.run() File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\command\build.py", line 135, in run self.run_command(cmd_name) File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command cmd_obj.run() File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\site-packages\cx_Freeze\dist.py", line 265, in run freezer.Freeze() File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\site-packages\cx_Freeze\freezer.py", line 799, in Freeze self._FreezeExecutable(executable) File "C:\Users\lersa\AppData\Local\Programs\Python\Python39\lib\site-packages\cx_Freeze\freezer.py", line 238, in _FreezeExecutable finder.IncludeFile(exe.main_script, exe.main_module_name) AttributeError: 'list' object has no attribute 'main_script'
Is the issue in my setup file or the main file of my code?
import cx_Freeze
from cx_Freeze import *
import sys
base = None
if sys.platform == "win32":
base = "Win32GUI"
executables = [
cx_Freeze.Executable(
"iwms.py",
copyright="Copyright (C) 2021",
base=base,
icon="imws.ico",
),
],
cx_Freeze.setup(
name = "App",
version = "0.1",
description = "My application!",
options = {"build_exe": build_exe_options},
executables = executables
)