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]
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.
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.
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.
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
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 ()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With