Разработка на Python в Visual Studio Code

Оглавление

Один из самых крутых редакторов кода, доступных программистам, Visual Studio Code, является открытым исходным кодом, расширяемым, легким редактором, доступным на всех платформах. Именно эти качества делают Visual Studio Code от Microsoft очень популярным и отличной платформой для разработки на Python.

В этой статье вы узнаете о разработке на Python в Visual Studio Code, в том числе о том, как:

  • Установите Visual Studio Code
  • Откройте и установите расширения, которые упрощают разработку на Python
  • Напишите простое Python-приложение
  • Узнайте, как запускать и отлаживать существующие программы на Python в VS Code
  • Подключите Visual Studio Code к Git и GitHub, чтобы поделиться своим кодом с миром

Мы предполагаем, что вы знакомы с разработкой на Python и уже установили в своей системе какую-либо разновидность Python (Python 2.7, Python 3.6/3.7, Anaconda или другие). Приведены скриншоты и демо-версии для Ubuntu и Windows. Поскольку Visual Studio Code работает на всех основных платформах, вы можете увидеть немного другие элементы пользовательского интерфейса и, возможно, вам придется изменить некоторые команды.

Если у вас уже есть базовая настройка VS Code и вы надеетесь копнуть глубже, чем предусмотрено в этом руководстве, вам, возможно, захочется изучить некоторые расширенные возможности VS Code.

Бесплатный бонус: 5 Thoughts On Python Mastery - бесплатный курс для разработчиков на Python, который покажет вам дорожную карту и образ мышления, необходимые для того, чтобы поднять ваши навыки работы на Python на новый уровень.

Установка и настройка Visual Studio Code для разработки на Python

Установка Visual Studio Code очень доступна на любой платформе. Доступны полные инструкции для Windows, Mac и Linux, а сам редактор ежемесячно обновляется новыми возможностями и исправляет ошибки. Вы можете найти все на сайте Visual Studio Code:

Visual Studio Code Web Site

Если вам было интересно, Visual Studio Code (или сокращенно VS Code) не имеет почти ничего общего со своим более крупным тезкой для Windows, Visual Studio.

Примечание: Чтобы узнать, как настроить VS Code как часть полноценной среды кодирования Python на машине с Windows, ознакомьтесь с этим исчерпывающим руководством.

Visual Studio Code имеет встроенную поддержку нескольких языков и модель расширения с богатой экосистемой поддержки других языков. VS Code обновляется ежемесячно, и вы можете следить за новостями в блоге Microsoft Python. Microsoft даже сделала репозиторий VS Code на GitHub доступным для всех желающих, чтобы клонировать и вносить свой вклад. (Призыв к пиару.)

Интерфейс VS Code UI хорошо документирован, поэтому я не буду повторять его здесь:

Visual Studio Code Welcome Screen

Расширения для разработки на Python

Как уже говорилось выше, VS Code поддерживает разработку на нескольких языках программирования благодаря хорошо документированной модели расширений. Расширение Python обеспечивает разработку на языке Python в Visual Studio Code со следующими возможностями:

Installing the Python extension for VSCode

Расширения Visual Studio Code охватывают не только возможности языков программирования:

  • Клавиши позволяют пользователям, уже знакомым с Atom, Sublime Text, Emacs, Vim, PyCharm или другими средами, чувствовать себя как дома.

  • Темы настраивайте пользовательский интерфейс, нравится ли вам кодирование в светлых, темных или более красочных тонах.

  • Языковые пакеты обеспечивают локализованный опыт.

Вот некоторые другие расширения и настройки, которые я считаю полезными:

  • GitLens предоставляет множество полезных функций Git прямо в окне редактирования, включая аннотации к вину и функции исследования репозитория.

  • Автосохранение легко включить, выбрав File, Auto Save в меню. Время задержки по умолчанию составляет 1000 миллисекунд, которое также можно настроить.

  • Settings Sync позволяет синхронизировать настройки VS Code на разных установках с помощью GitHub. Если вы работаете на разных машинах, это поможет сохранить единство среды на всех машинах.

  • Docker позволяет быстро и легко работать с Docker, помогая авторам Dockerfile и docker-compose.yml, упаковывать и развертывать проекты, и даже генерировать соответствующие файлы Docker для вашего проекта.

Конечно, в процессе использования VS Code вы можете обнаружить и другие полезные расширения. Пожалуйста, делитесь своими открытиями и настройками в комментариях!

Найти и установить новые расширения и темы можно, нажав на значок Расширения на панели активности. Вы можете искать расширения по ключевым словам, сортировать результаты различными способами, а также быстро и легко устанавливать расширения. Для этой статьи установите расширение Python, набрав python в пункте Extensions на Панели активности и нажав Install:

Finding the VSCode Marketplace in the UI

Вы можете найти и установить любое из вышеупомянутых расширений таким же образом.

Файлы конфигурации кода Visual Studio

Следует отметить, что Visual Studio Code очень хорошо поддается настройке с помощью параметров пользователя и рабочего пространства.

Настройки пользователя являются глобальными для всех экземпляров Visual Studio Code, в то время как настройки рабочего пространства являются локальными для конкретной папки или рабочего пространства проекта. Настройки рабочего пространства дают VS Code массу гибкости, и я упоминаю настройки рабочего пространства во всей этой статье. Настройки рабочего пространства хранятся в виде файлов .json в папке, локальной для рабочего пространства проекта, под названием .vscode.

Запуск новой программы на Python

Let’s start our exploration of Python development in Visual Studio Code with a new Python program. In VS Code, type Ctrl+N to open a new File. (You can also select File, New from the menu.)

Note: The Visual Studio Code UI provides the Command Palette, from which you can search and execute any command without leaving the keyboard. Open the Command Palette using Ctrl+Shift+P, type File: New File, and hit Enter to open a new file.

Независимо от того, как вы туда попали, вы должны увидеть окно VS Code, которое выглядит следующим образом:

Creating a new file in VSCode

После открытия нового файла можно начать вводить код.

Ввод кода Python

Для нашего тестового кода давайте быстро создадим Решето Эратосфена (которое находит все простые числа, меньшие заданного). Начните вводить следующий код в новой вкладке, которую вы только что открыли:

sieve = [True] * 101
for i in range(2, 100):

Вы должны увидеть что-то похожее на это:

Unformatted code in VSCode

Подождите, что происходит? Почему Visual Studio Code не делает ни подсветки ключевых слов, ни автоформатирования, ни чего-либо действительно полезного? В чем дело?

Ответ заключается в том, что сейчас VS Code не знает, с каким файлом он имеет дело. Буфер называется Untitled-1, и если вы посмотрите в правый нижний угол окна, то увидите слова Plain Text.

Чтобы активировать расширение Python, сохраните файл (выбрав File, Save в меню, File:Save File в палитре команд или просто используя Ctrl+S) как sieve.py. VS Code увидит расширение .py и правильно интерпретирует файл как код Python. Теперь ваше окно должно выглядеть так:

Properly formatted Python code in VSCode

Это гораздо лучше! VS Code автоматически переформатирует файл в Python, в чем вы можете убедиться, посмотрев режим языка в левом нижнем углу.

Если у вас установлено несколько Python (например, Python 2.7, Python 3.x или Anaconda), вы можете изменить, какой интерпретатор Python использует VS Code, щелкнув на индикаторе режима языка или выбрав Python: Select Interpreter в палитре команд. По умолчанию VS Code поддерживает форматирование, используя pep8, но вы можете выбрать black или yapf, если хотите.

Теперь добавим остальную часть кода Sieve. Чтобы увидеть работу IntelliSense, введите этот код напрямую, а не вырезайте и вставляйте, и вы должны увидеть что-то вроде этого:

Typing the Sieve of Eratosthenes Python code

Вот полный код для базового сита Эратосфена:

sieve = [True] * 101
for i in range(2, 100):
    if sieve[i]:
        print(i)
        for j in range(i*i, 100, i):
            sieve[j] = False

Пока вы набираете этот код, VS Code автоматически делает отступы в строках под операторами for и if, добавляет закрывающие круглые скобки и делает предложения. Это сила IntelliSense, работающая на вас.

Выполнение кода Python

Now that the code is complete, you can run it. There is no need to leave the editor to do this: Visual Studio Code can run this program directly in the editor. Save the file (using Ctrl+S), then right-click in the editor window and select Run Python File in Terminal:

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

Поддержка линтинга на языке Python

Возможно, во время набора текста вы видели всплывающее окно, сообщающее, что поддержка линтинга недоступна. Вы можете быстро установить поддержку линтинга из этого всплывающего окна, в котором по умолчанию выбрано PyLint. VS Code поддерживает и другие средства линтинга. Вот полный список на момент написания этой статьи:

  • pylint
  • flake8
  • mypy
  • pydocstyle
  • pep8
  • prospector
  • pyllama
  • bandit

На странице Python linting page есть полная информация о том, как настроить каждый linter.

Примечание: Выбор линтера - это настройка рабочего пространства проекта, а не глобальная настройка пользователя.

Редактирование существующего проекта Python

В примере с "Решетом Эратосфена" вы создали один файл Python. Это отличный пример, но во многих случаях вы создаете более крупные проекты и работаете над ними в течение длительного времени. Типичный рабочий поток нового проекта может выглядеть так:

  • Создайте папку для хранения проекта (которая может включать новый проект GitHub)
  • Перейдите в новую папку
  • Создайте начальный Python-код с помощью команды code filename.py

Использование Visual Studio Code в Python-проекте (в отличие от одного Python-файла) открывает массу дополнительных возможностей, которые позволяют VS Code по-настоящему сиять. Давайте посмотрим, как это работает с большим проектом.

В конце прошлого тысячелетия, когда я был еще совсем молодым программистом, я написал программу-калькулятор, которая разбирала уравнения, записанные в инфиксной нотации, используя адаптацию алгоритма Эдсгера Дейкстры "маневровый двор" .

Для демонстрации проектно-ориентированных возможностей Visual Studio Code я начал воссоздавать алгоритм маневрового двора в виде библиотеки оценки уравнений на Python. Чтобы продолжить работу, не стесняйтесь клонировать репо локально.

После того как папка создана локально, вы можете быстро открыть всю папку в VS Code. Мой предпочтительный метод (как упоминалось выше) модифицируется следующим образом, поскольку у меня уже есть созданная папка и основные файлы:

cd /path/to/project
code .

VS Code understands, and will use, any virtualenv, pipenv, or conda environments it sees when opened this way. You don’t even need to start the virtual environment first! You can even open a folder from the UI, using File, Open Folder from the menu, Ctrl+K, Ctrl+O from the keyboard, or File: Open Folder from the Command Palette.

Для моего проекта библиотеки equation eval вот что я вижу:

PyEval folder open in VSCode

Когда Visual Studio Code открывает папку, он также открывает файлы, которые были открыты последними. (Вы можете открывать, редактировать, запускать и отлаживать любой файл из списка. Вид Проводника на панели активности слева дает представление обо всех файлах в папке и показывает, сколько несохраненных файлов существует в текущем наборе вкладок.

Поддержка тестирования

VS Code может автоматически распознавать существующие Python-тесты, написанные на unittest фреймворке, или на pytest или Nose фреймворке, если эти фреймворки установлены в текущем окружении. У меня есть юнит-тест, написанный на unittest для библиотеки equation eval, который вы можете использовать для этого примера.

Чтобы запустить существующие модульные тесты, в любом Python-файле проекта щелкните правой кнопкой мыши и выберите Run Current Unit Test File. Вам будет предложено указать тестовый фреймворк, место в проекте для поиска тестов и шаблон имени файла, который используют ваши тесты.

Все эти параметры сохраняются как настройки рабочей области в локальном файле .vscode/settings.json и могут быть изменены там. Для этого проекта уравнения вы выбираете unittest, текущую папку и шаблон *_test.py.

После того как тестовый фреймворк настроен и тесты обнаружены, вы можете запустить все тесты, нажав Run Tests в строке состояния и выбрав опцию из палитры команд:

Вы можете запускать даже отдельные тесты, открыв файл теста в VS Code, нажав Run Tests в строке состояния и выбрав Run Unit Test Method... и конкретный тест для запуска. Это позволяет легко устранять отдельные сбои в тестировании и повторно запускать только неудачные тесты, что значительно экономит время! Результаты тестирования отображаются на панели Output в разделе Python Test Log.

Поддержка отладки

Несмотря на то, что VS Code - это редактор кода, отладка Python непосредственно в VS Code возможна. VS Code предлагает множество функций, которые вы ожидаете от хорошего отладчика кода, включая:

Вы можете увидеть их все как часть представления Debug на панели активности:

Finding the Debug UI in VSCode

Отладчик может управлять приложениями Python, запущенными во встроенном терминале или во внешнем терминале. Он может подключаться к уже запущенным экземплярам Python и даже отлаживать приложения Django и Flask.

Debugging code in a single Python file is as simple as starting the debugger using F5. You use F10 and F11 to step over and into functions respectively, and Shift+F5 to exit the debugger. Breakpoints are set using F9, or using the mouse by clicking in the left margin in the editor window.

Прежде чем приступить к отладке более сложных проектов, включая приложения Django или Flask, необходимо настроить и затем выбрать конфигурацию отладки. Настройка отладочной конфигурации относительно проста. В окне Debug выберите раскрывающийся список Configuration, затем Add Configuration и выберите Python:

Adding a new debug configuration to VSCode

Visual Studio Code создаст в текущей папке файл конфигурации отладки под названием .vscode/launch.json, который позволит вам настроить специфические конфигурации для Python, а также параметры для отладки конкретных приложений, таких как Django и Flask.

Вы можете даже выполнять удаленную отладку, а также отлаживать шаблоны Jinja и Django. Закройте файл launch.json в редакторе и выберите подходящую конфигурацию для вашего приложения из выпадающего списка Configuration.

Git Integration

VS Code имеет встроенную поддержку управления исходными текстами, и поставляется с поддержкой Git и GitHub прямо из коробки. Вы можете установить поддержку других SCM в VS Code и использовать их бок о бок. Контроль исходных текстов доступен из представления Source Control:

Source Control UI in VSCode

Если папка вашего проекта содержит папку .git, VS Code автоматически включает весь спектр функциональности Git/GitHub. Вот некоторые из многочисленных задач, которые вы можете выполнять:

Вся эта функциональность доступна непосредственно из пользовательского интерфейса VS Code:

Git Commands in VSCode

VS Code также распознает изменения, сделанные вне редактора, и будет вести себя соответствующим образом.

Комментирование последних изменений в VS Code - довольно простой процесс. Измененные файлы отображаются в окне Source Control маркером M, а новые неотслеживаемые файлы помечаются символом U. Поставьте свои изменения, наведя курсор на файл и нажав знак плюс (+). Добавьте сообщение о фиксации в верхней части представления, а затем нажмите на галочку, чтобы зафиксировать изменения:

Committing changes in VSCode

Вы можете пересылать локальные коммиты на GitHub и из VS Code. Выберите Sync в меню вида Source Control или нажмите Synchronize Changes на status bar рядом с индикатором ветки.

Заключение

Visual Studio Code - один из самых крутых редакторов общего назначения и отличный кандидат для разработки на Python. В этой статье вы узнали:

  • Как установить VS Code на любую платформу
  • Как найти и установить расширения для использования специфических для Python функций
  • Как VS Code облегчает написание простого приложения на Python
  • Как запускать и отлаживать существующие программы на Python в VS Code
  • Как работать с репозиториями Git и GitHub из VS Code

Visual Studio Code стал моим редактором по умолчанию для Python и других задач, и я надеюсь, что вы дадите ему шанс стать вашим.

Если у вас есть вопросы или замечания, пожалуйста, пишите в комментариях ниже. На сайте Visual Studio Code можно найти гораздо больше информации, чем мы могли бы рассказать здесь.

Вернуться на верх