J'ai utilisé cxfreeze pour créer un exécutable Windows à partir de planrequest.py. Cela semblait fonctionner correctement, mais lorsque j'exécute le fichier exe, j'obtiens NameError: name 'exit' is not defined
le nom de sortie n'est pas défini en python indique que le correctif consiste à utiliser import sys
. Cependant, j'utilise import sys. Le code fonctionne très bien comme un script python (comme dans, j'ai largement testé les arguments de la ligne de commande avant de les compiler en un exécutable.)
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]
L'importation de sys ne sera pas suffisante pour faire vivre exit
dans la portée globale.
Vous devez soit faire
from sys import exit
exit()
ou
import sys
sys.exit()
Notez que, comme vous utilisez également argv, dans le premier cas, vous devriez le fairefrom sys import argv,exit
Vous devez appliquer la fonction à sys:
from sys import exit
exit()
parce que exit
est la fonction elle-même, vous devez l'appeler avec ()