Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pyinstaller, NameError: global name 'quit' is not defined

I have a python script which runs just fine, however after running pyinstaller, I get the following when I use a quit() or exit() command:

Makespec file:

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), 'icinga.py'],
             pathex=['/home/user/projects/icinga_python/releases/onefile_v1.0'])
pyz = PYZ(a.pure)
exe = EXE( pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'icinga'),
          debug=False,
          strip=False,
          upx=True,
          console=1 )

Here is what I see after I run the app:

Traceback (most recent call last):
  File "<string>", line 222, in <module>
  File "<string>", line 207, in main
  File "<string>", line 66, in icinga_mysql
  File "<string>", line 45, in checksanity
NameError: global name 'quit' is not defined
like image 830
Cmag Avatar asked Sep 19 '11 16:09

Cmag


3 Answers

That is because there is no quit command. You are looking for sys.exit.

like image 181
phihag Avatar answered Oct 29 '22 15:10

phihag


quit can be found in pygame.locals import *

Usage:

for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit()
like image 2
Light Avatar answered Oct 29 '22 14:10

Light


def quit():
    sys.exit()


self.quit_button = Button(self, text="QUIT",command = quit)
like image 1
Hoss Avatar answered Oct 29 '22 13:10

Hoss