Greg Peckory
Greg Peckory

Reputation: 8048

Error converting .py to executable using cx_freeze

I am using python 3.3.3

the following is my setup.py code

    import sys
from cx_Freeze import setup, Executable


build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

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

setup(  name = "send_email",
        version = "0.1",
        description = "send the email",
        options = {"build_exe": build_exe_options},
        executables = [Executable("send_email.py", icon="icon.ico", base=base)])  

The only import in my send_email.py file is smtplib.

The following error message is what I receive when building the executable in the command window:

c:\Python33>python.exe setup.py build
running build
running build_exe
copying c:\Python33\lib\site-packages\cx_Freeze\bases\Win32GUI.exe -> build\exe.
win-amd64-3.3\send_email.exe
copying C:\Windows\SYSTEM32\python33.dll -> build\exe.win-amd64-3.3\python33.dll

Traceback (most recent call last):
  File "setup.py", line 17, in <module>
    executables = [Executable("send_email.py", icon="icon.ico", base=base)])
  File "c:\Python33\lib\site-packages\cx_Freeze\dist.py", line 365, in setup
    distutils.core.setup(**attrs)
  File "c:\Python33\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "c:\Python33\lib\distutils\dist.py", line 917, in run_commands
    self.run_command(cmd)
  File "c:\Python33\lib\distutils\dist.py", line 936, in run_command
    cmd_obj.run()
  File "c:\Python33\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "c:\Python33\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "c:\Python33\lib\distutils\dist.py", line 936, in run_command
    cmd_obj.run()
  File "c:\Python33\lib\site-packages\cx_Freeze\dist.py", line 235, in run
    freezer.Freeze()
  File "c:\Python33\lib\site-packages\cx_Freeze\freezer.py", line 577, in Freeze

    self._FreezeExecutable(executable)
  File "c:\Python33\lib\site-packages\cx_Freeze\freezer.py", line 169, in _Freez
eExecutable
    cx_Freeze.util.AddIcon(exe.targetName, exe.icon)
SystemError: error return without exception set

Upvotes: 2

Views: 3013

Answers (4)

宇文忆姗
宇文忆姗

Reputation: 1

Change your options to:

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"],"include_files": ["icon.ico"],}

Upvotes: 0

Kenny Truong
Kenny Truong

Reputation: 613

I had the SAME EXACT ERROR that i just fixed right now! There is a very simple solution , you are getting this error becasue of your icon file.

  1. I take it you have a setup.py file with something along the lines of executables = [cx_Freeze.Executable("filename.py", base=base, icon="youricon")]

You need to make sure that your icon is an .ico file. Simply search for .gif or .png to .ico converter and it will do it for you!

Make sure also that your .ico file is inside your folder of your files. Make sure to include files in the options

You probably have something else in your setup.py along the lines of...

options = {"build_exe":{"packages":["THEMODS YOU IMPORTED HERE"],"include_files":["THE FILES NEED TO BE HERE"]}

This is what fixed the problem for me. LMK if this helps :)

Upvotes: 0

Amir Hsni
Amir Hsni

Reputation: 1

use this setup file .

from cx_Freeze import setup, Executable

GUI2Exe_Target_1 = Executable(
    script = "Your scripts",
    initScript = None,
    base = 'Win32GUI',
    targetName = "app.exe",
    compress = True,
    copyDependentFiles = True,
    appendScriptToExe = False,
    appendScriptToLibrary = False,
    icon = "YOUR ICON FILE.ico"
    ) 
excludes = ["pywin", "tcl", "pywin.debugger", "pywin.debugger.dbgcon",
        "pywin.dialogs", "pywin.dialogs.list", "win32com.server",
        "email"] 
includes = ["PyQt4.QtCore","PyQt4.QtGui","win32gui","win32com","win32api","html.parser","sys","threading","datetime","time","urllib.request","re","queue","os"] 
packages = [] 
path = [] 
setup(
    version = "1.0",
    description = "myapp",
    author = "me",
    author_email = "[email protected]",
    name = "Your app name !",
    options = {"build_exe": {"includes": includes,
                             "excludes": excludes,
                             "packages": packages,
                             "path": path
                            }
               },
    executables = [GUI2Exe_Target_1]
    )

Upvotes: 0

Cla
Cla

Reputation: 31

I had the same message error and I fixed it by giving the full path of the icon file. By the way, make sure the icon is in .ico format (At first I renamed the extensions of a .png file to .ico and caused the process to crash, lastly I converted the .png file to the .ico format and it worked).

Upvotes: 3

Related Questions