Python程序在命令提示符下工作,但在Windows

时间:2015-05-27 13:07:22

标签: python windows cmd

我正在开发一个非常简单的python程序,它基本上是一个密码输入屏幕。当我通过Windows上的命令提示符(python login.py)执行时,一切正常,程序正常运行。但是,如果我通过双击它来运行程序,那么我需要输入密码:"输入,只要我输入所需的密码,就会出现此错误:

NameError:name' pass'没有定义。

如何修复此错误?

import time

print("You have ten seconds to enter the password.")
time.sleep(1)
print("Or this computer will shut down.")
password = input("Enter password: ")

while 1:
    if password == "pass":
        print("Login successful.")
        break
    else:
        password = input("Enter password: ")

1 个答案:

答案 0 :(得分:1)

听起来您正在从命令行运行Python 3.X,但是当您点击它时,Python 2.7正在执行您的脚本。发生错误是因为2.7' input的行为与3.X不同。

您可以尝试重新定义input,使其在两个版本中的行为相同:

try:
    input = raw_input
except NameError:
    #we're already in 3.x and don't need to do anything
    pass

#rest of code goes here

或者,您可以更改.py文件的默认应用程序。如何做到这一点可能因操作系统而异,但在Windows中它是这样的:右键单击.py文件,选择"打开..."和"选择默认程序",然后浏览到3.X目录中的python可执行文件。