Почему Python не работает в Visual Studio 2017? - PullRequest
0 голосов
/ 03 октября 2018

Перед установкой Visual Studio 2017 все мои файлы python были успешно запущены с использованием py (или py3) в PowerShell, Git Bash и Cygwin Terminal, но не CMD.exe или MSYS:

py myscript.py

ЭтоИсполняемый файл был установлен непосредственно установщиком Python 3.7, и я настроил для него переменные пути.

После установки VS 2017 Microsoft вставила путь к их специфичной для VS копии py.exe, C:\Windows\py.exe всистемная PATH переменная.Эта копия python ничего не делает при непосредственном запуске и не отвечает на команду exit(), чтобы прекратить поток, а сценарии ничего не делают при передаче в нее.Буквально ничего не работает, даже print() операторов.

В Visual Studio после открытия окна «Solution Explorer» и щелчка правой кнопкой мыши на script.py и нажатия Start without Debugging ничего не происходит.

Если я нажимаю Start with Debugging, то он переключает представление в режим отладки и «запускает» программу (отображаются кнопки паузы и остановки), но окно выполнения не отображается.Панель «Вывод» автоматически выбирает «Отладка», и выходных данных там нет.Панели "autos" и "localals" не заполнены, что указывает на то, что на самом деле ничего не выполняется.

Я не хочу обходного пути.Я знаю, что могу удалить эту запись из PATH, но официальная установка Python может быть несовместима с VS 2017 или может отсутствовать интеграция.Я хочу знать, почему копия Microsoft py.exe терпит неудачу во всем и каково их официальное решение этой проблемы.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Это не совсем правильный ответ, потому что я не уверен, как это связано с проблемой, с которой вы сталкиваетесь в Visual Studio 2017 и PowerShell, - но поскольку вы попросили меня опубликовать его какхотя это был один, я делаю это.


Microsoft не установила исполняемый файл C:\Windows\py.exe, установщик Python сделал.

Также обратите внимание, что это не такинтерпретатор Python, это утилита командной строки "launcher", которая ищет специальные комментарии shebang (#! prefixed) в начале файлов сценариев.Это позволяет запускать скрипты Python в Windows примерно так же, как в Linux, и помогает, если в вашей системе установлено более одной версии Python (например, 2.x и 3.x).

См.далее об использовании Python в Windows в документации Python .Также см. Репозиторий управления версиями Vinay Sajip (автор) для проекта pylauncher , в котором он был создан.

Как я уже говорил в предисловии, я не уверен, как все это относится кваша проблема, но вам кажется, что понимание того, как все обычно работает, может помочь вам решить проблему.

Надеюсь, вы нашли ее проницательной ...

0 голосов
/ 03 октября 2018

Visual Studio 2017 использует PowerShell в качестве оболочки / среды выполнения.

Проблема связана с тем, что в PowerShell возникла проблема с принятием свойств среды выполнения Cygwin, включая виртуальный путь.

Проблемаслучайно ушел.Одна секунда, PowerShell сообщает о своем рабочем каталоге как /cygdrive/c/folder/to/working/directory и действует точно так же, как Cygwin Terminal.В следующий раз, когда я запустил PowerShell, он работал правильно, возвращая вывод такого типа в pwd:

PS C:\WINDOWS\system32> pwd

Path
---- 
C:\WINDOWS\system32

Эта проблема представляет собой комбинацию из двух проблем.Первый из них связан с тем, что py.exe не распознает Cygwin как интерактивную оболочку, как объяснено в в этом ответе .

Второй - в PowerShell, где используется среда выполнения Cygwin.Не уверен, как это происходит, или почему это внезапно перестало происходить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...