【问题标题】:Can't run Python file via Command Prompt, File is not defined error无法通过命令提示符运行 Python 文件,文件未定义错误
【发布时间】:2018-05-10 11:19:07
【问题描述】:

我是 Python 新手,目前正在学习基础 Python 课程。我整天都在通过命令提示符运行代码,并且运行良好。出于某种原因,尽管它已停止工作并且我尝试运行的 python 文件返回以下错误:

回溯(最近一次通话最后一次): 文件“”,第 1 行,在 NameError: name 'hello' 没有定义

根据屏幕截图和上面的数字,我执行了以下步骤以尝试运行该文件:

  1. 更改为保存文件的文件夹
  2. 运行 'dir' 列出所有文件。我正在尝试运行“hello.py”。这包含代码: print('hello simon!')
  3. 我可以通过在命令提示符中输入 hello.py 来运行该文件,这可以正常工作
  4. 我也可以运行:python hello.py - 这工作正常
  5. 当我通过键入 Python --> Enter 激活 Python 时,这将启动解释器。但是,如果我尝试通过键入 hello.py 来运行,我会收到错误消息。

这整天都运行良好,我没有在我的 PC 上进行任何更改(据我所知!)但几个小时前才开始出现此错误。我在整个互联网上寻找解决方案,但一无所获。我已经卸载并重新安装了 Python,重新启动等...都无济于事。

我在 Windows 7 64 位 PC 上运行 Python 3.6.5。

它不会让我附上图片,所以这里是命令提示符和错误截图的链接:https://i.stack.imgur.com/BBUe5.jpg

我希望有人可以帮助我解决这个问题 谢谢你

【问题讨论】:

    标签: python


    【解决方案1】:

    应该在 Python 解释器中执行 hello.py。它不会工作。当您在命令提示符中输入 python 并按 Enter 时,只需输入这个,

    >>> print('hello simon!')
    

    然后按 Enter,它肯定会起作用。因为解释器应该逐行执行代码。因此,如果您想运行 Python 脚本,请不要在解释器中执行它。

    【讨论】:

    • 好吧,现在明白了,把自己完全搞混了,结果在圈子里跑来跑去!感谢您的帮助
    【解决方案2】:

    问题是当你(单独)编写python时,命令行调用python shell并且以下命令在python shell中运行,而不是在命令行中了。从 shell 调用脚本具有不同的格式(查找)。您可以输入 exit() 再次退出 shell 回到命令行

    【讨论】:

      【解决方案3】:

      您想要实现的是在 Python 中运行 Hello.py。 不使用 Python。

      您需要使用 Python 运行 Hello.py。因为python是这里的解释器。

      >>>python
      

      表示你正在进入python shell

      >>>print('hello simon!')
      

      相当于你的程序。

      【讨论】:

        【解决方案4】:

        您正在按照应有的方式运行您的 Python 脚本,并且它正在运行。如果您将 Python 添加到您的路径中,您可以运行脚本,您只需调用脚本“hello.py”。如果你有多个解释器,或者你没有将它添加到你的路径中,那么你可以这样调用它"C:\path\to\python\interpretet\pythonxxx.exe" "c:\path\to\python\script.py" 你甚至可以将参数传递给它"C:\path\to\python\interpretet\pythonxxx.exe" "c:\path\to\python\script.py" --argument

        当您在 shell 中键入 python 时,将激活交互模式。这就像一个shell,您可以在其中键入命令并立即得到解释,与cmdpowershell 的工作方式相同,但适用于python。这样你就可以测试 sn-ps,或者只是做一些像这样过于复杂的简单事情

        import os
        
        ls = os.listdir(os.path.abspath('c:/'))
        def print_dir():
            for file in ls:
                print(file)
        

        在 cmd 中将是 dir c:\ 或在 powershell 中 ls c:\。重点是您可以测试库、探索对象、替换 shell 或只是玩得开心。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-19
          • 2015-03-28
          • 2016-11-09
          • 2021-09-26
          相关资源
          最近更新 更多