Рубрики
Без рубрики

Среда разработки Python

Этот пост-мои заметки о том, как легко разрабатывать проекты на python, и мысли об управлении средой проектов на python. Если что-нибудь лучше и новее, пожалуйста, дайте мне знать в комментариях! Зачем нам это нужно…

Автор оригинала: Bruce Kuo.

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

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

Преимущество 1. Ускорьте Разработку

  • при хорошей среде разработчики могут быстро создавать/разрабатывать/тестировать/развертывать код на любой машине
  • быстрое развертывание очень важно на CI/CD
    • легко освобождается
    • гибкое тестирование

Преимущество 2. Контроль зависимостей проектов

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

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

Совет 1. Управление версией Python

Почему?

Python имеет разные версии ( python 2.6 , python 2.7 , python 3.x … ). Для каждого проекта вам нужно решить, какая версия в вашем проекте, или вам нужно разработать старый проект, основанный на python 2.6 . Быстрое изменение среды может помочь вам узнать, какую версию python вы используете!

Как

  • pyenv : https://github.com/pyenv/pyenv
  • Как rbenv в ruby, если вы пользователь ruby XD
  • команды:
    • pyenv версии : список всех версий python в pyenv
    • pyenv global {python_version} : настройка глобальной среды python.
    • Обеспечьте поддержку версий Python для каждого проекта.

Совет 2. Отдельная среда каждого проекта с виртуальной средой

Почему?

Чтобы разработать проект, нам нужно создать структуры пакетов, которые использует этот проект. Но если мы используем встроенный python, мы не можем разделить пакеты требований по проектам. Подумайте о случае: теперь мы используем pyenv и выбираем python 3.6 в качестве версии проекта python и у нас есть 2 проекта для разработки, как управлять зависимостями пакетов независимо? Чтобы решить этот случай, virtualenv предоставляет способ создания пустой среды python проекта, и вы можете легко проверить в любой среде, чтобы выполнить соответствующую разработку.

Как

  • проект github: https://github.com/pypa/virtualenv
  • команды:
    • virtualenv ENV : запустите новую виртуальную среду python в каталоге ENV
    • источник ENV/bin/activate : начало работы в среде ENV python
    • деактивировать : проверка текущей среды

Совет 3. Управление зависимостями пакетов с помощью pip

Почему?

Каждый язык имеет аналогичные инструменты управления пакетами, которые помогают разработчикам легко управлять своими проектами (например, gem для ruby, npm для javascript, maven/sbt для java …). Инструмент управления пакетами может управлять зависимостями и решениями проектов, например:

  • зависимости от колбы
    'Werkzeug>=0.14',
    'Jinja2>=2.10',
    'itsdangerous>=0.24',
    'click>=5.1',

и эти 4 пакета также имеют свои пакеты требований, инструмент управления пакетами будет рекурсивно расширять пакеты требований и устанавливать их один за другим. Если существует конфликт версий (например, пакет нуждается в пакете C с версией 0, а пакет B нуждается в пакете C с версией < 3.0), он должен иметь предупреждение, чтобы уведомить пользователей об устранении конфликта.

Как

  • Как
  • команды
    • pip install {имя_пакета} : установка пакета
    • pip freeze : список всех пакетов и версий в текущей среде
    • pip install -r {requirement_path} : установите все пакеты в requirement_path
    • pip uninstall {имя_пакета} : удаление пакета

Совет 4. Последний инструмент для создания инструмента разработки python: pipenv

Почему?

Чтобы улучшить работу, pipenv может позволить пользователю легче управлять пакетами и средой. В общем, этот пакет похож на virtualenv + pip . Кроме того, этот пакет также решает некоторые проблемы, если разработчики используют virtualenv + pip . Как упоминалось в официальных документах, проблемы, которые pipenv хочет решить,:

Проблемы, которые Pipenv стремится решить, многогранны:

  • Вам больше не нужно использовать pip и virtualenv отдельно. Они работают вместе.
  • Управление a requirements.txt файл может быть проблематичным, поэтому Pipenv использует файл трубы и файл трубы.блокировка для отделения абстрактных объявлений зависимостей от последней проверенной комбинации.
  • Хэши используются везде и всегда. Безопасность. Автоматически выявлять уязвимости в системе безопасности.
  • Настоятельно рекомендуется использовать последние версии зависимостей, чтобы свести к минимуму риски для безопасности, связанные с устаревшими компонентами.
  • Дайте вам представление о вашем графике зависимостей (например, $ pipenv graph ).
  • Оптимизируйте рабочий процесс разработки, загрузив файлы .env .

Как

  • Как
  • команды
    • pipe nv install : установка из файла Pip
    • pipenv install {package} : установка пакета
    • график pipenv : список зависимостей проекта в графике
    • оболочка pipenv : введите среду python проектов

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

  1. Выберите версию python
  2. Создание среды пакетов
  • использование virtualenv + pip
  • использование по трубопроводу напрямую
  1. Начните писать код!

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