【问题标题】:f-Strings in Sublime TextSublime Text 中的 f 字符串
【发布时间】:2020-06-08 12:20:45
【问题描述】:

如果我检查 Python 的版本,我的终端会显示 3.8.1。但是如果我尝试在 Sublime Text 中使用这些 f 字符串,我总是会遇到语法错误。

谁能告诉我为什么?

所以这是我的版本,与我的终端有关

Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

这是代码:

greeting = 'Hello'
name = 'Hannah'

message = f'{greeting}, {name}. Welcome!'

print(message)

这是错误:

File "/Users/bennimueller/Desktop/Intro.py", line 4
    message = f'{greeting}, {name}. Welcome!'
                                            ^
SyntaxError: invalid syntax
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "/Users/bennimueller/Desktop/Intro.py"]
[dir: /Users/bennimueller/Desktop]
[path: /Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

【问题讨论】:

  • which python 返回什么?
  • 检查运行脚本的 Python 版本:import sys; print(sys.version)。此外,错误消息应该显示发生错误的行,不是吗?如果是,请edit它进入问题。顺便说一句,欢迎来到 SO!如果您需要建议,请查看 tourHow to Ask
  • @wjandrea 非常感谢您!没错,错误消息显示了错误发生的位置。而import sys; print(sys.version) 的返回是2.7.16 (default, Dec 13 2019, 18:00:32)。知道了!将构建系统更改为 Python3。

标签: python macos syntax-error sublimetext3


【解决方案1】:

当您在 macOS 上从 python.org 安装程序安装 Python 时,可执行文件实际上是通过运行 python3 来调用的。您的 build system 实际上是在调用 /usr/bin/python,这是 macOS 附带的 Python 2 版本。

要解决这个问题,您只需创建一个自定义构建系统。转到ToolsBuild SystemNew Build System…(一直到最下面)输入下面的内容(全部删除)出现的占位符模板)。

{
    "cmd": ["/Library/Frameworks/Python.framework/Versions/3.8/python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

当您保存文件时,它会自动将您放在正确的目录中——如果您有兴趣,它是/Users/<b><i>YourUserName</i></b>/Library/Application Support/Sublime Text 3/Packages/User。将文件命名为Python 3.sublime-build,现在会有一个ToolsBuild SystemPython 3选项。

【讨论】:

    【解决方案2】:

    对于 Python 3.9:

    1. 转到 Sublime Text 到:Tools -> Build System -> New Build System 并输入下一行:

    {
        "cmd": ["python3", "-i", "-u", "$file"],
        "file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    

    然后用有意义的名称保存它,例如:python3.sublime-build

    2. 转到工具 -> 构建系统 -> 并检查 python3

    测试它:

    import sys
    print(sys.version)
    

    按:Ctrl + b

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 2014-06-15
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2017-11-15
      • 2020-07-20
      相关资源
      最近更新 更多