Background
I have made a program that I am trying to turn into an executable using CX_Freeze. The setup.py file is placed inside the same directory as all files I am working with. I don't use any extra libraries other than TKinter and OS.
The program works perfectly fine normally when I run it via PyCharm>Run
Version Numbers
- cx_Freeze ver: - 5.0
- cx_Freeze .whl: - cx_Freeze-5.0-cp36-cp36m-win_amd64.whl
- python ver: - 3.6.0b4
- pycharm ver: - 2016.3.1
This is my setup.py file
import cx_Freeze
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
base = "Win32GUI"
cx_Freeze.setup(
name = "FileOrganizer-Client",
options = {"build_exe": {"packages":["tkinter","os"],"include_files":["icon2.ico"]}},
version = "0.01",
description = "File Organizer",
executables = [cx_Freeze.Executable("alpha_GUI.py", base=base, icon="icon2.ico")]
)
This is the error I get when I run "python setup.py build" inside the directory
C:\Users\Jeremy\PycharmProjects\cleanup>C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\python setup.py build running build running build_exe
Traceback (most recent call last): File "setup.py", line 18, in
<module>
executables = [cx_Freeze.Executable("alpha_GUI.py", base=base, icon="icon2.ico")]
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\dist.py",
line 349, in setup
distutils.core.setup(**attrs)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\core.py",
line 148, in setup
dist.run_commands()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\dist.py",
line 955, in run_commands
self.run_command(cmd)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\dist.py",
line 974, in run_command
cmd_obj.run()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\command\build.py",
line 135, in run
self.run_command(cmd_name)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\cmd.py",
line 313, in run_command
self.distribution.run_command(command)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\distutils\dist.py",
line 974, in run_command
cmd_obj.run()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\dist.py",
line 219, in run
freezer.Freeze()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\freezer.py",
line 621, in Freeze
self.finder = self._GetModuleFinder()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\freezer.py",
line 333, in _GetModuleFinder
self.path, self.replacePaths)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 150, in __init__
self._AddBaseModules()
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 161, in _AddBaseModules
self.IncludeModule("traceback")
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 651, in IncludeModule
namespace = namespace)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 310, in _ImportModule
deferredImports, namespace = namespace)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 403, in _InternalImportModule
parentModule, namespace)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 474, in _LoadModule
self._ScanCode(module.code, module, deferredImports)
File
"C:\Users\Jeremy\AppData\Local\Programs\Python\Python36\lib\site-packages\cx_Freeze\finder.py",
line 562, in _ScanCode
arguments.append(co.co_consts[opArg])
IndexError: tuple index out of range
I am not very skilled or familiar with any of this so I hope I didn't leave anything out. Please let me know if any more information is needed.
This has been submitted as a bug in
cx_freeze, Python 3.6 has introduced some changes to code objects (most notably withPEP 523) so it might have introduced certain bugs in applications that depend on them.Keep track of the issue on
cx_freezeand remember that certain errors might pop up when using a newly released version of Python.As an aside, since you import
cx_Freezeand accesssetupandExecutablethrough there, there's no need for the:line. You aren't using those names.