简体   繁体   中英

Convert a python file into an executable with cx_Freeze then get error AttributeError: 'list' object has no attribute 'main_script'

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
)

IDK know why is this happeing but you should do this instead:

import cx_Freeze
from cx_Freeze import *
import sys

base = None
if sys.platform == "win32":
base = "Win32GUI"

cx_Freeze.setup(
    name = "App",
    version = "0.1",
    description = "My application!",
    options = {"build_exe": build_exe_options},
    executables = [
       cx_Freeze.Executable(
           "iwms.py",
           copyright="Copyright (C) 2021",
           base=base,
           icon="imws.ico",
      ),
   ])

Put Executable list directly in the setup function.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM