Использование Homebrew python3 как с пакетами homebrew, так и с пакетами pip / pip3 в Visual Studio Code для ОС Ma c - PullRequest
2 голосов
/ 08 апреля 2020

В настоящее время я пытаюсь настроить код Visual Studio на Ma c OSX 10.13.6 для кодирования в python3. Я хотел бы избежать использования нескольких виртуальных сред для своих различных python3 сценариев и вместо этого запускать их все, используя:

(1) одну и ту же homebrew установку python3

(2) доступ к установленным python пакетам в:

  • homebrew списке пакетов
  • pip3 списке установленных пакетов
  • pip списке установленных пакетов.

Во-первых, я сначала установил python3, используя homebrew:

$ brew info python
python: stable 3.7.7 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.7.7 (4,062 files, 62.4MB)
...
Python has been installed as
  /usr/local/bin/python3
...
You can install Python packages with
  pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.7/site-packages

Во-вторых, я установил необходимые пакеты, используя homebrew:

$ brew list
cmake           libffi          p11-kit
dcraw           libheif         pandoc
dlib            libidn2         pcre
...
jasper          numpy           webp
...

И другие пакеты, использующие pip и pip3:

$ pip list
DEPRECATION:...
Package                                Version 
-------------------------------------- --------
altgraph                               0.10.2  
...
numpy                                  1.8.0rc1
...
zope.interface                         4.1.1  
$
$ pip3 list
Package            Version
------------------ -------
appnope            0.1.0  
... 
numpy              1.18.2 
pandocfilters      1.4.2  
parso              0.5.2  
pexpect            4.7.0  
pickleshare        0.7.5  
pip                20.0.2 
pomegranate        0.12.2 
...
scipy              1.4.1  

В-третьих, я открыл код Visual Studio и в «Предпочтения» -> «Настройки» и установил "Python:Python Path" на homebrew python3 установка, как указано выше /usr/local/bin/python3.

См. Этот снимок экрана: Python:Python Path

Затем я добавил /usr/local/lib/python3.7/site-packages для homebrew установки python3 в файл настроек кода Visual Studio, используя :

"python.autoComplete.extraPaths": [
    "/usr/local/lib/python3.7/site-packages" ]

Наконец, я выбрал мой интерпретатор python в коде Visual Studio как /usr/local/bin/python3 и попытался запустить следующие 2 строки импорта в сценарии .py, как показано на снимке экрана ниже. Обратите внимание, что интерпретатор имеет значение Python 3.7.0 64-bit, заданное в левом нижнем углу окна кода VS.

VS Code Screenshot

И после всего этого получилось эти выходные данные после нажатия кнопки «Воспроизвести» для запуска кода в верхнем правом углу кода VS:

[Running] python -u "/Users/...bayes_net_nodes.py"
Traceback (most recent call last):
  File "/Users/...bayes_net_nodes.py", line 1, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'

[Done] exited with code=1 in 0.037 seconds

Какой самый простой способ настроить код VS, чтобы я мог запускать python3 сценарии у вас есть доступ ко всем пакетам, которые я установил в моей системе без использования виртуальных сред? Спасибо!

Примечание. Один обходной путь, который, кажется, работает, и я не уверен, почему, если я помещаю шебанг в верхнюю часть моего сценария #! /usr/local/bin/python3, и мой вывод будет выглядеть так:

[Running]  /usr/local/bin/python3 "/Users/...bayes_net_nodes.py"

[Done] exited with code=0 in 0.051 seconds

Что странно, потому что это отличается от вывода выше, где я не использовал shebang, но оба интерпретатора python в соответствии с VSCode действительно /usr/local/bin/python3

1 Ответ

1 голос
/ 09 апреля 2020

Я смог воспроизвести вашу проблему .. но только когда я использую Code Runner для запуска.

enter image description here

Те Тип выходных журналов с [Running] и [Done] равен Code Runner.
Кнопка воспроизведения также не зеленая, что указывает на Code Runner, поскольку по умолчанию используется зеленый цвет.

Теперь, для исправления!

Вы заметите, что он выполнил ваш скрипт, используя python -u. Это значение python будет равно значению python в вашей системе, что для меня является значением по умолчанию Python 2.7. По сути, это не ваш Homebrew Python3 с numpy.

Code Runner имеет набор по умолчанию "executors", который сообщает ему, какой исполняемый файл для какого языка использовать. Найдите его в своих настройках как «Карта исполнителя бегущего кода»:

enter image description here

Откройте настройки . json, введите code-runner.executorMap, затем разрешите автозаполнение по умолчанию. Затем вы увидите длинный список отображений между языком и исполнителем. Найдите для python:

    "code-runner.executorMap": {
        "javascript": "node",
        ...
        "python": "python -u",
        "perl": "perl",
        ...
    }

И вот оно: python -u, то же самое, что использовалось для запуска вашего скрипта.

Если вы хотите продолжить использовать код Бегун, просто замените его на того python переводчика, которого вы хотите использовать. В вашем случае это должно быть /usr/local/bin/python3:

    "code-runner.executorMap": {
        ...
        "python": "/usr/local/bin/python3",
        ...
    }

Теперь оно должно работать:

enter image description here

Причина, по которой это работает с #! /usr/local/bin/python3 shebang, потому что Code Runner имеет настройку, которая учитывает shebang файла (code-runner.respectShebang), который по умолчанию имеет значение true.

Если вам не нужен этот дополнительный шаг настройки Code Runner, вы можете просто отключить (или удалить его). Все шаги, которые вы уже выполнили (установка python.pythonPath, выбор переводчика и нажатие этой кнопки «Воспроизвести»), уже отлично работали бы с Python расширением Microsoft . См. Официальные документы по работающим Python файлам , выбору сред и отладке .

...