Этот пост-мои заметки о том, как легко разрабатывать проекты на 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 в pyenvpyenv 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
: установка из файла Pippipenv install {package}
: установка пакетаграфик pipenv
: список зависимостей проекта в графикеоболочка pipenv
: введите среду python проектов
Составляя вышеперечисленные инструменты с помощью простых команд, разработчики могут легко создать среду python для своих проектов. Ниже приводится простое краткое изложение шагов:
- Выберите версию python
- Создание среды пакетов
- использование
virtualenv
+pip
- использование
по трубопроводу
напрямую
- Начните писать код!
Но да, есть много продвинутых команд и способов использования пакетов. Еще многому предстоит научиться …