如何在 Mac OS 12.1 上使用 SublimeREPL 避免 Sublime Text 4 中 input() 的 NameError?

How can I avoid NameError from input() in Sublime Text 4, using SublimeREPL on Mac OS 12.1?

我按照以下短视频中的说明允许 Python 脚本在 Sublime Text 中 运行。

https://www.youtube.com/watch?v=-d27eACbjnk

步骤是:

  1. 安装'Package Control'
  2. 安装'SublimeREPL'
  3. 选择'Tools > Build System > Build New System'
  4. 粘贴以下内容:
{
    "target":"run_existing_window_command",
    "id":"repl_python_run",
    "file":"config/python/Main.sublime-menu"
}
  1. 另存为 'Python_Run' 并关闭标签页
  2. 打开新标签并另存为'test.py'
  3. 选择'Tools > Build System > Python_Run'
  4. 粘贴以下文本代码:
name = input("Enter your name: ")

print(name)
  1. 选择'Tools > Build'到运行。

  2. 根据提示输入姓名。

但是,当我输入名称时,我收到以下 NameError 消息:

Enter your name: Sean
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    name = input("Enter your name: ")
  File "<string>", line 1, in <module>
NameError: name 'Sean' is not defined

我发现解决这个问题的唯一方法是在引号中输入名称。 但是链接的视频演示了上述工作而无需为输入使用引号。

我是 Python 和 Sublime 的新手,所以希望有一个易于理解的修复程序。

此答案假设您是 运行 Linux 或 macOS,并且已经在您的系统上安装了 Python 3。

你得到 NameError 因为 SublimeREPL 使用的是 Python 2,这是一个旧版本,它在 2 年前就通过了 end-of-life 支持,并且在此之前很久就被弃用了。然而,并不是每个人都将他们的代码库移植到当前的 Python 3,这就是为什么您仍然可以在某些系统上找到它的原因。如果你刚开始学习Python,你绝对应该从使用Python 3开始,这是语言的现在和未来,然后在你熟练之后,你可以学习它和它之间的区别Python2.

好消息是,如果您使用的是 Linux 或 macOS 的最新版本,您可能已经在系统上安装了 Python 3,并且将 SublimeREPL 指向相对简单它。首先,打开 Sublime 并在 Linux 上打开 select Preferences → Browse Packages… 或在 macOS 上打开 Sublime Text → Preferences → Browse Packages… .您系统的文件浏览器将打开一个名为 Packages 的文件夹,该文件夹至少包含 2 个子文件夹 - SublimeREPLUser(取决于您目前安装的插件数量)。打开 SublimeREPL 文件夹,然后打开 config,然后打开 Python。将名为 Main.sublime-menu 的文件拖到您的 Sublime window 并将其语法设置为 JSON (View → Syntax → JSON).

第 53 行应该是这样的:

"cmd": ["python", "-u", "$file_basename"],

python改为python3:

"cmd": ["python3", "-u", "$file_basename"],

此外,如果您以后直接使用 REPL,请更改第 22 行和第 39 行,使它们也显示 python3

保存文件,然后切换回原始 Python 文件并使用 Python_Run 构建系统。您现在应该能够使用您的原始测试代码并获得正确的结果。


作为参考,Sublime Text 4 Packages 文件夹在不同的操作系统上位于不同的位置:

  • Linux: ~/.config/sublime-text/Packages
  • macOS/OS X: ~/Library/Application Support/Sublime Text/Packages
  • Windows 常规安装:C:\Users\<b><i>你的用户名</i></b>\AppData\Roaming\Sublime Text\Packages
  • Windows 便携式安装:<b><i>InstallationFolder</i></b>\Sublime Text\Data\Packages