NameError:未定义名称"exit"

Tim*_*Tim 20 python cx-freeze

我使用cxfreeze从planrequest.py创建一个Windows可执行文件.它似乎工作正常,但是当我运行exe文件时,我得到了NameError: name 'exit' is not defined

在修复程序要使用的python状态中未定义name exitimport sys.但是,我使用import sys.代码作为python脚本运行良好(例如,我在编译成可执行文件之前对命令行参数进行了广泛测试.)

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]
Run Code Online (Sandbox Code Playgroud)

小智 27

导入sys将不足以exit在全局范围内生效.

你要么做

from sys import exit
exit()
Run Code Online (Sandbox Code Playgroud)

要么

import sys
sys.exit()
Run Code Online (Sandbox Code Playgroud)

请注意,因为您也在使用argv,所以在第一种情况下您应该这样做 from sys import argv,exit

  • 这就是答案,这确实是一个痛苦。如果需要 `sys.exit`,我觉得 IDE 应该告诉我它是必需的。也许我只是习惯了更……固化的?……语言。 (3认同)

Dam*_*ero 6

您必须将该函数应用于 sys:

from sys import exit
exit()
Run Code Online (Sandbox Code Playgroud)

因为exit是函数本身,你需要调用它()