【问题标题】:Error "variable is not defined", but the variable can be called in the console报错“变量未定义”,但可以在控制台调用变量
【发布时间】:2022-05-09 21:11:06
【问题描述】:

我在 Spyder 上使用 python。我的脚本使用了一个名为 imgs 的变量。我有以下错误:未定义名称“imgs”。但是当我尝试在控制台中调用 imgs 时,它可以工作,我没有任何错误。

然后,我尝试在 Spyder 的控制台中写入 x=2。然后,我在 spyder 上执行了一个脚本(白色 juste 1 行:print(x)),我仍然有同样的错误:未定义名称'x'。

我之前从来没有遇到过这个错误

【问题讨论】:

  • 听起来脚本的执行发生在它自己的会话中,与您正在使用的任何交互式外壳分开。
  • 控制台会话中的变量在您运行的脚本中看不到。您的问题在test.py 中,这就是我们应该看到和调试的。请注意,如果test.py 很大,请制作一个较小的来说明问题。
  • 约书亚:是的,你知道如何改变吗? tdelaney : test.py 只有一行 : print(imgs)

标签: python spyder


【解决方案1】:

这是因为控制台可以记住最近在脚本中定义的变量,但脚本一旦消失就无法记住。

让我这样说吧:

您运行一个导入数学模块的脚本。然后您转到您的脚本并删除“import math”语句。

只要您在运行后没有关闭控制台,您仍然可以使用数学模块而无需在控制台中再次导入它原始工作脚本。

【讨论】:

  • 我试过了,如你所说。但是今天我不得不重新安装 python,我 100% 确信它以前在我的电脑上没有像以前那样工作。以前,我可以在控制台中调用一个新变量,当我尝试使用这个变量执行脚本时,它起作用了!包也是一样:我能够在控制台中导入数学,并在脚本中使用数学函数,而无需在脚本中编写“导入数学”
【解决方案2】:

您应该尝试在控制台的命名空间中运行 Run Preferences

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2023-01-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 2020-07-01
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多