Как настроить код Visual Studio в Windows 10 таким образом, чтобы игнорировать шебанги и использовать путь интерпретатора Python? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть проект Python, который предназначен для запуска в Linux:

#!/usr/bin/env python3
def hello(a: str):
    print(f"bonjour {a}")

hello("SO")

Когда я редактирую этот код в Windows с помощью кода Visual Studio и запускаю его, я получаю

[Running] /usr/bin/env python3 "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py"
The system cannot find the path specified.

Если код Visual Studio намеревается использовать шебанг, ошибка понятна: ни env, ни python3 не существует.

Как настроить код Visual Studio, чтобы он не принималшебанг, а лучше использовать исполняемый файл C:\Python36\python.exe?


Я нашел в настройках Python: Python Path и установить его на свой исполняемый файл, но при наличии шебанга шебанг имеет приоритет

Я удалил Шебанг, чтобы попробовать эту версию (это не решение, мне нужно держать Шебанг там), и довольно интересно, я получил:

[Running] python -u "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py"
  File "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py", line 2
    def hello(a: str):
               ^
SyntaxError: invalid syntax

Это странно, как кажетсячто компилятор не распознает синтаксис Python 3.6, а Python 3.6 - это тот, который находится в пути (есть еще два исполняемых файла Python 2, скрытые на компьютере, даже в пути).

Visual Studio Code предлагает использовать 3.6:

enter image description here

Так что я подозреваю, что где-то есть настройка пути к исполняемому файлу Python, которую я мог бы настроить.

1 Ответ

0 голосов
/ 23 сентября 2018

шебанг

Использование шебанга или нет можно настроить в настройках: поиск shebang, а затем Code-runner: Respect Shebang

версия Python

При запуске кода через Ctrl F5 использовался правильный интерпретатор.

При запуске через Alt Ctrl N (Run Code) использовался неправильный.

Iпроверил с

import sys
print(sys.executable)

и по какой-то причине был показан интерпретатор Platform.io.Я не знаю, как это закончилось под Run Code, но отключение Platform.io помогло.Оба Alt Ctrl N и Ctrl F5 теперь используют правильный переводчик.

Iдо сих пор не знаю, почему оба способа запуска сценария используют разные интерпретаторы, но, по крайней мере, на данный момент проблема решена.

...