所以我在Linux服务器上运行了一个python脚本。代码:
#!/bin/python
databaseRun = input("Do you want to run all databases: ")
if databaseRun == "yes":
print("yes")
else:
print("no")
返回错误:
Traceback (most recent call last):
File "./db_upg.py", line 3, in <module> databaseRun = input("Do you want to run all databases: ")
File "string", line 1, in <module> NameError: name 'yes' is not defined
现在,如果我将此代码输入PyCharm,它运行没有问题。我错过了什么?基本上你会把是或否将是唯一的回答
答案 0 :(得分:1)
您可能使用Python 2而不是Python 3来运行它。尝试使用python3 <scriptname>
代替python <scriptname>
运行它。并将shebang行分别从#!/bin/python
更改为#!/usr/bin/python3
。
在Python 2中,input()
将输入读作代码而不是字符串。因此,当您键入yes
时,它会将其读作未定义的变量yes
。如果您想在标记建议的情况下使用Python 2而不是Python 3运行此操作,请使用raw_input()
代替input()
。 Python 2&#39; raw_input()
返回一个字符串,类似于Python 3&#39; input()
。
答案 1 :(得分:0)
无论你运行什么python版本,这都适用于:
#!/bin/python
import sys
if sys.version_info[0] == 3:
inp = input
else:
inp = raw_input
databaseRun = inp("Do you want to run all databases: ")
if databaseRun == "yes":
print("yes")
elif databaseRun == "no":
print("no")
else:
print("invalid input")