我有Python 3和一个带有简单.py
文件的文件夹,上面写着Hello World
。我使用os.chdir("path-to-file")
导航到该文件,之后我在Python命令行中输入文件的名称(例如demo.py
)。每次我这样做,我都会收到错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'demo' is not defined
无论如何,当我在一个简单的Windows命令行中运行python脚本时,它运行良好。这是为什么?
顺便说一句,关于Python的任何其他阅读列表/链接都会有所帮助。
答案 0 :(得分:1)
从命令行运行脚本:
$ python3 /path/to/file
除非所有代码都包含在函数或类中,否则您不希望在python解释器中运行脚本。假设您的文件script.py
如下所示:
print("Beep boop")
你可以通过导入
在python解释器中加载这个文件>>> os.chdir("path/to/file")
>>> import script
Beep boop
但这是解决这个问题的错误方法。 import
用于在文件之间共享代码 - 不执行代码。如果script.py
看起来像这样:
def main():
print("Beep boop")
if __name__ == "__main__":
main()
然后你可以像这样运行它
>>> os.chdir("path/to/file")
>>> import script
>>> script.main()
Beep boop
或者像这样:
$ python3 /path/to/file
Beep boop
对于第一个工作方法,您还需要一个名为__init__.py
的文件与script.py
在同一目录中。
我建议你做一些关于如何使用命令行的阅读,一开始很令人沮丧,但值得付出努力。