Spyder (python 2.7) - почему скрипты запускаются, если я нажимаю кнопку "Выполнить", а не если я набираю имя скрипта в командной строке?
Новое в Python/ Spyder. У меня проблемы с запуском скриптов так, как я хочу. Пример Quck с использованием следующего скрипта:
# Demo file for Spyder Tutorial
# Hans Fangohr, University of Southampton, UK
def hello():
"""Print "Hello World" and return None"""
print("Hello World")
# main program starts here
hello()
Я сохранил это как hello.py. Когда я набираю hello() в моей командной строке, я получаю следующую ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'hello' is not defined
Однако, если я нажму кнопку запуска с открытым сценарием в редакторе, он будет работать нормально и напечатает Hello World. Затем я могу ввести hello() в мою командную строку, и она работает нормально.
Может кто-нибудь объяснить мне, почему это так?
Моя общая цель - сохранить скрипт startup.py, который я могу запустить из стандартного cwd, который меняет мой cwd на то место, где я хочу сохранить весь свой код.
2 ответа
hello
не определено, пока вы не выполните def hello
заявление. Вы еще не запустили скрипт, так что строка не была выполнена. После того, как вы запустили скрипт, hello
был определен.
Вы должны запустить скрипт. Есть 3 (возможно, больше) способа сделать это: python hello.py
в cmd или powershell, если он находится в вашем cwd, кнопке запуска в вашей IDE или двойным щелчком по файлу.py с интерпретатором python, установленным в качестве программы по умолчанию для файлов.py. Кстати, это конкретные окна.