Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NameError: name 'exit' is not defined

I used cxfreeze to create a Windows executable from planrequest.py. It seemed to work ok, but when I run the exe file I get NameError: name 'exit' is not defined

name exit is not defined in python states that the fix is to use import sys. However, I use import sys. The code runs fine as a python script (as in, I extensively tested the command line arguments before compiling to an executable.)

import socket import sys  if len(sys.argv) == 1:     print("Usage:")     print("PlanRequest [Request String] [Server IP (optional: assumes 127.0.0.1 if omitted)]")     exit()  #[do stuff with the request] 
like image 869
Tim Avatar asked Jul 12 '17 19:07

Tim


People also ask

How do you solve NameError name is not defined?

The Python "NameError: name is not defined" occurs when we try to access a variable or function that is not defined or before it is defined. To solve the error, make sure you haven't misspelled the variable's name and access it after it has been declared.

How do you correct a NameError in Python?

You can fix this by doing global new at the start of the function in which you define it. This statement puts it in the global scope, meaning that it is defined at the module level. Therefore, you can access it anywhere in the program and you will not get that error.

What causes NameError in Python?

In Python, the NameError occurs when you try to use a variable, function, or module that doesn't exist or wasn't used in a valid way. Some of the common mistakes that cause this error are: Using a variable or function name that is yet to be defined.


2 Answers

Importing sys will not be enough to make exit live in the global scope.

You either need to do

from sys import exit exit() 

or

import sys sys.exit() 

Note that, as you are also using argv, in the first case you should do from sys import argv,exit

like image 140
b1ch0u Avatar answered Sep 28 '22 06:09

b1ch0u


You have to apply the function to sys:

from sys import exit exit() 

because exit is the function itself, you need to call it with ()

like image 28
A Monad is a Monoid Avatar answered Sep 28 '22 06:09

A Monad is a Monoid