名称出口未在 python 中定义
Posted
技术标签:
【中文标题】名称出口未在 python 中定义【英文标题】:name exit is not defined in python 【发布时间】:2015-05-09 20:52:17 【问题描述】:以下是代码。 当我运行时,我收到一条错误消息,说“未定义名称退出”。谁能告诉我为什么?非常感谢您的时间和关注。
if len(sys.argv) == 4:
### do something
pass
else:
print
"usage: #### something here"
exit(-1)
【问题讨论】:
只要import sys,像这样:from sys import exit;导入系统 你使用的是sys.argv
,很明显,你已经导入了sys
。所以就做sys.exit
一个简单的问题。我早些时候用一台超级计算机运行它,它可以工作。但是今天我在我的电脑上运行它,它给了我这样的错误。有谁知道为什么?
【参考方案1】:
您需要先import sys
,因为exit
(和argv
)在该模块中。
我在运行您的代码时遇到的错误是:
文件“”,第 1 行,在 NameError 中:名称 'sys' 不是 定义
这是抱怨sys.argv
而不是exit
。但无论哪种情况,解决方案——import sys
都是一样的。
【讨论】:
实际上,即使没有import sys
,exit
命令也可以在终端中运行。但是当我在 Jupyter 笔记本中运行相同的脚本时,我需要导入。不知道为什么?
即使我导入 sys,我也无法退出以在正在运行的 Python3 程序中的任何位置工作。【参考方案2】:
如果您导入了sys
,则使用sys.exit(0)
- 将0
更改为您想要退出的任何结果代码。
我遇到了同样的问题,在编译之前从.py
文件exit(0)
运行时运行良好,但是在编译到.exe
之后它给了我一个错误。我不得不将 exit(0)
更改为 sys.exit(0)
并且成功了。
【讨论】:
宾果游戏!一些关于编译的事情使它复杂化了。添加sys.
解决了这个问题。以上是关于名称出口未在 python 中定义的主要内容,如果未能解决你的问题,请参考以下文章