Каковы наилучшие способы настройки VS Code для разработки и предоставления проектов Python сообществу с открытым исходным кодом?

Оглавление

  1. Введение
  2. Установка Python
  3. Установка кода Visual Studio
  4. Установка Git
  5. Установка расширений в VS Code
  6. Настройка пакетов для проектов Python
  7. Заключение

Введение

Visual Studio Code должен быть одной из интегрированных сред разработки (IDE), которую я активно использовал в течение последних 3-4 лет. Причины? Мне понравилось, как разработана вся IDE. Он чистый и каким-то образом использует подход, похожий на подход React, например библиотеку. При установке VS Code я получаю пустой холст для настройки среды в соответствии с моими требованиями. Это дает мне возможность запускать вещи либо из командной строки, либо из опции запуска и отладки в VS Code.

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

Здесь я подробно описываю, как я настроил свою среду разработки для разработки на Python, начиная с установки VS Code в Ubuntu 20.04.

Если у вас уже установлены Python, Git и VS Code, вы сразу переходите к разделу Установка расширений в VS Code. Если нет, пожалуйста, продолжайте дальше, чтобы получить инструкции по установке.

Установка Python

Убунту 20.04

В Ubuntu 20.04 установлен Python, и обычно вы получаете версию Python 3.8.10.

Windows 10

Чтобы установить Python в Windows, выполните следующие действия:

  • Сначала зайдите на python.org и наведите указатель мыши на вариант загрузки.
  • Выберите Windows и нажмите Python 3.9.9.
  • Выберите установщик Windows (32-разрядная или 64-разрядная версия в зависимости от конфигурации вашей системы. Вы можете найти эти сведения в описании устройства в окне настроек)
  • После загрузки исполняемого файла откройте его, чтобы начать процесс установки.
  • Перед установкой убедитесь, что вы установили флажок «Добавить в путь» в левом нижнем углу окна установки.

Установка кода Visual Studio

Убунту 20.04

Откройте терминал Ubuntu и выполните следующие команды:

  • Сначала установите зависимости, необходимые для настройки VS Code.
  • Импортируйте ключи Microsoft GPG и включите установку, используя:
  • Обновите кэш пакетов и установите программное обеспечение, используя:

После того, как все вышеперечисленные шаги будут выполнены, VS Code будет настроен на вашем компьютере. Чтобы проверить, работает ли он должным образом, запустите команду code на терминале. Команда должна открыть окно VS Code.

Подробнее об установке можно узнать по этой ссылке.

Windows 10

  • Загрузите Установщик Visual Studio Code для Windows.
  • После загрузки запустите установщик (VSCodeUserSetup-{версия}.exe). Это займет всего минуту.
  • По умолчанию VS Code устанавливается под C:\\users\\{username}\\AppData\\Local\\Programs\\Microsoft VS Code.

Подробнее об установке можно узнать по этой ссылке.

Установка Гита

Убунту 20.04

Обычно git предустановлен в Ubuntu 20.04. Если вы не видите, что git доступен, установите git с помощью команды

sudo apt install git-all

Windows 10

Чтобы установить git в Windows, выполните следующие действия:

  1. Сначала посетите https://git-scm.com/ и загрузите исполняемый файл.
  2. После загрузки запустите установщик. Git попросит вас выбрать несколько вариантов. Если вы новичок в git, пожалуйста, не вносите никаких изменений в конфигурацию. Однако, если вы знаете, какой выбор предлагает установщик, выберите соответствующий вариант.

Установка расширений на VS Code

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

Посетите этот пост, который я написал ранее, где я перечислил все необходимые расширения. Затем введите имена этих расширений на вкладке расширений и установите их.

ПРИМЕЧАНИЕ. Для некоторых расширений может потребоваться установка Node.js. Вы можете найти подробную информацию об установке Node.js по тем же ссылкам, которые я поделился выше для установки VS Code.

Дополнительные настройки и настройка расширений

С установленными расширениями, упомянутыми в разделе выше, вы можете продолжить разработку Python. Но если вы, как и я, любите следовать передовым методам кодирования для Python, я добавлю несколько шагов ниже, чтобы получить код хорошего качества.

Я поделюсь фрагментами JSON, которые вы можете напрямую ввести в файл settings.json VS Code. Где вы можете найти его?

  • Нажмите на опцию «Управление» (значок шестеренки) в левом нижнем углу окна VS Code и выберите настройки, или вы можете использовать сочетание клавиш Ctrl+comma.

  • Нажмите на опцию «Управление» (значок шестеренки) в левом нижнем углу окна VS Code и выберите настройки, или вы можете использовать сочетание клавиш Ctrl+comma.

  • После открытия settings.json вы должны увидеть следующее содержимое в файле JSON.
{
    "workbench.iconTheme": "vscode-icons"
}

Введите все фрагменты настроек, указанные в фигурных скобках ({}) файла settings.json.

Теперь вот все шаги по настройке параметров и расширений:

  • Прежде всего, одной из жизненно важных частей руководства по стилю Python является то, что каждая строка кода должна быть ограничена только 79 символами. Для этого наличие гида поможет. Добавьте линейку для этого. Как только вы введете это и сохраните, вы должны увидеть строку в редакторе VS Code.
"editor.rulers": [79]
  • Если вы хотите изменить цвет линейки, то вы можете ввести эту настройку:
"workbench.colorCustomizations": {
  "editorRuler.foreground": "#ffffff"
}
  • Включите автозаполнение, установив языковой сервер по умолчанию. На мой взгляд, лучшим вариантом, доступным в VS Code, является расширение PyLance.
"python.languageServer": "Pylance"
  • В руководстве по стилю Python необходимо соблюдать гораздо больше требований, чем просто правило 79 символов. Существует пакет python под названием black, чтобы убедиться, что мы следуем большинству стандартов стиля кодирования. Использование этого автоматически гарантирует соблюдение некоторых правил руководства по стилю. Конечно, чтобы использовать этот пакет, нам нужно его установить. Но вместо того, чтобы постоянно устанавливать его вручную, мы можем убедиться, что VS Code позаботится об этом. Для этого нам нужно добавить следующие строки в настройки.
"python.formatting.provider": "black"
  • Для черного цвета по умолчанию установлено значение 100 символов. Чтобы установить его на 79, добавьте следующую настройку. Подробнее о черном вы можете прочитать здесь: https://black.readthedocs.io/en/stable/.
"python.formatting.blackArgs": [
   "--line-length=79"
]
  • Мы настроили черный, но для его использования нам пришлось бы запускать черный через командную строку вручную каждый раз после сохранения файла. Чтобы переопределить, код VS предоставляет параметр для форматирования сценария каждый раз, когда мы его сохраняем.
"editor.formatOnSave": true
  • Чтобы файлы могли работать на разных платформах, а поскольку большинство платформ развертывания основаны на Linux, нам необходимо убедиться, что все файлы закрыты одинаковым символом конца строки (EOL), то есть \\n. Мы также можем добавить этот параметр, чтобы независимо от среды разработки, будь то Windows или Linux, мы могли быть уверены, что EOL файла всегда остается неизменным.
"files.eol": "\n"
  • Хотя все вышеперечисленные настройки обеспечивают стандарты кодирования, нам также необходимо подумать о стандартах документации кода. Ранее при установке расширений мы установили одно из них под названием Python Docstring Generator. Чтобы убедиться, что мы придерживаемся похожего стиля документации, вы можете добавить этот параметр. Здесь мы устанавливаем формат строки документации в стиле Numpy. Вы также можете установить одно из следующих значений.
    а. DocBlockr (докблокр)
    б. Google (гугл)
    c. Sphinx (сфинкс)
    Пожалуйста, убедитесь, что в настройках вы вводите все в малых регистрах. Кроме того, пожалуйста, откройте документацию по расширению и прочитайте о лучших способах его использования, чтобы узнать больше.
"autoDocstring.docstringFormat": "numpy",
"autoDocstring.includeExtendedSummary": true,
"autoDocstring.startOnNewLine": true,
"autoDocstring.guessTypes": true

Это охватывает базовую настройку, которую я бы сделал для простых проектов Python. Но этого недостаточно, если вы углубляетесь в разработку пакета Python или работаете в команде. Сообщество рекомендует несколько лучших практик, и я попытался объяснить некоторые из них ниже.

Настройка пакетов для проектов Python

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

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

  • Пилинт
  • Пидокстиль
  • хуки перед фиксацией
  • черный
  • Поэзия
  • виртуальная обертка
  • Пипенв

Пакеты, которые я упомянул, — это лишь некоторые из многих инструментов, которые я пробовал и использовал в течение долгого времени. Я также перечислю другие инструменты, которые я пытался использовать, если кто-то заинтересован в их проверке.

Настройка сред

Как разработчики, мы склонны создавать несколько проектов. Для этого установка пакетов на голую машину — ужасная идея. Давайте рассмотрим пример, чтобы понять это. Предположим, вы создаете проект, для которого потребуется фреймворк для веб-разработки — Django, и устанавливаете последнюю версию. Итак, теперь на вашем компьютере последней версией Django будет 3.2.9.

Допустим, через несколько дней вы хотите опробовать проект, разработанный вашим коллегой, в котором они использовали Django версии 3.0.0. К сожалению, установка этого проекта вызовет проблемы с создаваемым вами веб-приложением.

Чтобы избежать таких сценариев, когда могут возникнуть конфликты установленных пакетов, мы используем виртуальные среды.

Я использовал несколько инструментов для создания виртуальных сред. Но чаще всего я использую Poetry, virtualenvwrapper и Pipenv.

Поэзия

Poetry, как указано на их веб-сайте, — это инструмент для упаковки Python и управления зависимостями. Для меня это должен быть выдающийся инструмент, который сделал установку пакетов Python и управление зависимостями довольно простыми. Он использует файл в формате TOML в качестве входных данных, чтобы узнать, какие пакеты Python необходимы, и после установки создает файл блокировки, который управляет зависимостями. Хотя это прекрасный инструмент, будучи инженером по глубокому обучению, который использует PyTorch, мне было трудно его использовать из-за множества проблем с установкой разных пакетов PyTorch. Но если вам нужно разработать пакет Python или веб-сайт, для которого не нужны какие-либо фреймворки глубокого обучения, я считаю, что это лучший инструмент для использования. Я использовал его для многих проектов веб-разработки и никогда не имел проблем с этим.

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

Пипенв

Pipenv похож на Поэзию на высоком уровне. Он также создает свой файл блокировки для управления зависимостями, а также помогает в упаковке и управлении. Мне еще рано занимать позицию между Pipenv и Poetry, так как я пользуюсь ими обоими.

Я использую эти два — Pipenv для любых проектов, связанных с глубоким обучением, и Poetry для других проектов.

Есть еще один инструмент, который я использую довольно часто, это virtualenvwrapper.

Виртуальная обертка

Virtualenvwrapper — это тот, который я использую большую часть времени из-за простоты настройки среды. Все, что мне нужно, это одна команда для создания виртуальной среды. Этот инструмент экономит мне много времени, когда я хочу протестировать что-то, для чего я не хочу использовать Poetry или Pipenv.

Другие пакеты

Наряду с этим я пытался использовать Pipx, но не понял его удобства использования. Воспользовавшись virtualenvwrapper, я почувствовал, что он похож на него. Поэтому я не использовал этот пакет экстенсивно. Наряду с этим я пытался использовать pyenv. Pyenv — один из таких инструментов, который помогает создавать виртуальные среды с различными версиями Python. Однако я никогда не чувствовал необходимости создавать среды с различными версиями Python. Я попробовал это с помощью virtualenvwrapper, и, похоже, это работает, но я не тестировал эту функцию подробно.

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

Стандарты кодирования и документации

Ранее мы говорили о стандартах кодирования и документации с использованием черного пакета и расширения Python Docstring Generator. Но это еще не все. Чтобы понять все требования стандартов кодирования, нам придется ознакомиться с различными предложениями по улучшению Python (PEP). Такие пакеты, как Pylint, Pydocstyle и Mypy, анализируют PEP и дают нам подсказки, чтобы сделать наш код профессиональным. Итак, давайте разберемся, что делают эти пакеты.

Пилинт

Pylint — это инструмент, который проверяет наличие ошибок в коде Python, пытается обеспечить соблюдение стандарта кодирования и ищет запахи кода. Он также может искать определенные типы ошибок, давать рекомендации по рефакторингу определенных блоков и предлагать подробные сведения о сложности кода.

Приведенное выше утверждение — это то, как Pylint определяет себя.

Чтобы использовать Pylint в своих проектах, вам нужно создать файл с именем .pylintrc в корневой папке и определить несколько параметров конфигурации. Это помогает настроить конвейеры непрерывной интеграции и управлять проверками качества кода на основе разрабатываемого проекта.

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

Пидокстиль

pydocstyle – это инструмент статического анализа для проверки соответствия соглашениям о строках документации Python.

Подобно тому, что Pylint предоставляет поддержку для настройки своих проверок в соответствии с требованиями вашего проекта, вы также можете настроить то, что pydocstyle должен проверять в ваших проектах. Наряду с этим, когда вы визуализируете строки документации вашего кода, вы можете установить формат по умолчанию, такой как Numpy.

Другие пакеты

Я также пытался использовать другие пакеты, такие как Pycodestyle, Prospector, Mypy, но не чувствовал, что они нужны, так как большая часть помощи уже была получена от Pylint, Pydocstyle и black.

Код фиксирует

Мы добавили все пакеты, которые помогут нам улучшить качество нашего кода. Но откуда нам знать, что мы не пропустили несколько ошибок? Вот тут-то и появляются хуки перед фиксацией.

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

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

Заключение

После внесения необходимых модификаций и установки всех пакетов мой settings.json на VS Code выглядит так:

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

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

Еще раз спасибо за чтение блога. Надеюсь, вам понравилось. Ваше здоровье!

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.