Похоже, что Pipfile / Pipfile.lock предназначены для замены файла requirements.txt в контексте упаковки Python. Однако документации о том, как они на самом деле работают, не так много. Я нашел развивающееся описание pipfile на участке PyPi сайта Python здесь , но это довольно грязно и не объясняет семантику различных секций файла.
Какие-нибудь указания о том, как понимать эти файлы?
Gemfile
иGemfile.lock
из мира Ruby:.lock
файл имеет определенные версии для каждой зависимости; тот, у которого нет этого расширения, имеет только версии, известные контролирующим людям. Тем не менее, просить объяснения того, что все еще развивается и еще далек от того, чтобы быть четко определенным, гораздо менее стандартизированным, возможно, немного преждевременно.Pipfile
иrequirements.txt
в основном заключается в том, что первый пытается перенять функции из мира Ruby, то есть возможность указывать наборы зависимостей для нескольких сред и с условиями / параметрами / и т. Д. В одном файле).Ответы:
Концепция этих файлов проста и аналогична другим уже существующим инструментам, если вы знакомы с Ruby Bundler или Node Npm.
Pipenv
- это инструмент управления пакетами и виртуальной средой, который использует файлы Pipfile и Pipfile.lock для достижения этих целей.Pipenv обрабатывает виртуальную среду одним стандартным способом по умолчанию (больше не требуется активировать и деактивировать). Ниже приведены некоторые основы для начала работы, подробнее см. На веб-сайте pipenv .
Начиная
Начать использовать pipenv очень просто, в типе папки вашего проекта ...
... и если у него уже есть
requirements.txt
файл, он сгенерируетPipfile
файл с требованиями и папку виртуальной среды, в противном случае он сгенерирует пустойPipfile
файл. Если вам не понравилось что-то, что вы установили, или вы передумали, просто введите ...... и все готово. Чтобы активировать виртуальную среду, уже созданную pipenv, воспользуйтесь ...
... и ваша виртуальная среда будет активирована. Чтобы покинуть окружающую среду ...
... и вы вернетесь к исходному сеансу терминала.
Pipfile
Pipfile файл предназначен для определения требований пакетов для вашего приложения на Python или библиотеки, как для разработки и исполнения. Вы можете установить пакет, просто используя ...
... и он будет добавлен как зависимость для развертывания и выполнения или с помощью ...
... и он будет использоваться как зависимость для времени разработки. Синтаксис файла довольно прост, он выглядит следующим образом.
Pipfile.lock
Pipfile.lock предназначен для указания, на основе настоящее пакетов в Pipfile , которые следуют использовать конкретный вариант тех, избегая риски автоматического обновления пакетов , которые зависят друг от друга и разорвать ваше дерево зависимостей проекта.
Вы можете заблокировать установленные в данный момент пакеты с помощью ...
... и инструмент найдет папку вашей виртуальной среды, чтобы автоматически сгенерировать файл блокировки на основе текущих установленных версий. Синтаксис файла не так очевиден, как для Pipfile , поэтому для краткости он здесь отображаться не будет.
источник
[[source]]
, например, это источник для пакетов, которые загружаются pipenv или чем-то еще? Думаю, остальные два файла достаточно очевидны.Pipfile
. Если что-то сломается при обновлении пакета, вы сможете исправить это, просмотрев историю версий пакета, и действительно, один из создателей библиотеки запросов действительно рекомендует сделать это здесь .--skip-lock
флаг, чтобы заставить его игнорироватьPipfile.lock
файл, а не заставлять его использовать его;)