Почему в коде macOS Visual Studio используется неправильный интерпретатор Python?

#python #python-3.x #macos #visual-studio-code

#Python #python-3.x #macos #visual-studio-code

Вопрос:

Я использую VS Code 1.33.1 на macOS Sierra (10.12.6). Когда я запускаю простую программу на Python, подобную следующей, VS Code использует Python 2.7, установленный на моем Mac, а не Python 3, который я установил с помощью Homebrew.

     # show-python-version.py
    import sys
    print(sys.version)
  

Вот результат, отображаемый в окне вывода VS Code:

     [Running] python -u "/Users/smith/Documents/Programming/Python/Examples/show-python-version.py" 
    2.7.15 (default, May  1 2018, 16:44:37) 
    [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]

    [Done] exited with code=0 in 0.032 seconds
  

Как вы можете видеть, я получаю версию 2.7.15, потому что она вызывает «python» вместо «python3», но я не знаю, как заставить его использовать python3. Вот все, что я сделал, чтобы попытаться решить эту проблему:

  1. Я убедился, что ни одна из моих виртуальных сред, использующих Python 2.7, не запускается, когда я выполняю команду «code .» в каталоге Examples .

  2. Я установил Python 3 с помощью Homebrew, поэтому я открыл палитру команд (shift cmd p), ввел «Python: выберите интерпретатор» и подтвердил, что он использует мою версию Homebrew: current: /usr/local/bin/python3.

  3. Я проверил настройки VS Code, искал «python.pythonPath» и подтвердил, что он совпадает с путем интерпретатора, показанным на шаге 2 выше.

  4. Я также изучил файл Examples/.vscode/settings.json, чтобы подтвердить путь интерпретатора и там:

     {
            "python.pythonPath": "/usr/local/bin/python3"
    }
      
  5. Я перезапустил VS Code безрезультатно.

У меня установлены эти расширения:

 esbenp.prettier-vscode@1.8.1
formulahendry.code-runner@0.9.8
fosshaas.fontsize-shortcuts@1.5.0
ms-python.python@2019.3.6558
tht13.python@0.2.3
vmsynkov.colonize@2.2.2
vscodevim.vim@1.4.0
  

Это может быть связано с моим путем, который выглядит следующим образом, поскольку и python, и python3 находятся в /usr/local/bin:

     $ echo $PATH
    /usr/local/bin:/usr/bin:/bin:/usr/sbin:....
  

Что я делаю не так?

Комментарии:

1. Что произойдет, если вы запустите его в окне терминала через vs code?

2. Как это делается? «code —help» не показывает способ запуска модуля Python через vscode через командную строку.

3. щелкните правой кнопкой мыши окно редактора файлов и выберите Run Python File in Terminal

4. Я понимаю. Да, когда я делаю это, моя короткая программа использует python3, как я хочу. Тогда почему, если я нажимаю ctrl option n, он использует python? Можно ли это исправить?

5. Эти нажатия клавиш ничего не делают для меня в моем коде по умолчанию VS. вы настроили их как ярлык?

Ответ №1:

Это из-за расширения Code Runner. Добавьте это "code-runner.executorMap.python": "python3 -u" в свой settings.json, и это должно изменить версию python, когда он запускает код на python3 вместо python2

Комментарии:

1. Вот и все! Я бы никогда не подумал об этом. Спасибо!

2. Я получаю неизвестную настройку конфигурации для этого, поэтому она не работает

3. Большое вам спасибо!

4. @IFunction если у вас нет code-runner расширения, параметр конфигурации не будет существовать