f-строки в возвышенном тексте - PullRequest
2 голосов
/ 24 февраля 2020

Если я проверяю версию Python, мой Терминал говорит, что он 3.8.1. Но если я пытаюсь использовать эти f-строки в Sublime Text, я всегда получаю синтаксическую ошибку.

Может кто-нибудь сказать мне, почему?

Так вот моя версия, связанная с моим терминалом

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]

1 Ответ

1 голос
/ 04 марта 2020

Когда вы устанавливаете Python из установщика python .org в macOS, исполняемый файл фактически вызывается при запуске python3. Ваша система сборки фактически вызывает /usr/bin/python, версию Python 2, которая поставляется с macOS.

Чтобы обойти это, вы просто создаете пользовательскую систему сборки. Go до ToolsBuild SystemNew Build System… (полностью внизу) и введите содержимое ниже (удалите все шаблон заполнителя, который появится).

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

Когда вы go сохраните файл, он автоматически поместит вас в нужный каталог - это /Users/<b><i>YourUserName</i></b>/Library/Application Support/Sublime Text 3/Packages/User, если вам интересно. Назовите файл Python 3.sublime-build, и теперь появится опция ToolsBuild SystemPython 3.

...