Оригинальный адрес: https://www.ostechnix.com/pipenv-officially-recommended-python-packaging-tool/
перевод
В прошлый раз мы опубликовали статью [Как использовать Pip для управления пакетами Python] (Как использовать Pip для управления пакетами Python «Как использовать Pip для управления пакетами Python»). В этой статье мы обсудили, как установить Pip и как использовать Pip для установки, обновления и удаления пакетов Python. Мы также обсудили важность виртуальных сред и способы их создания с помощью инструментов venv и virtualenv. Но управление несколькими виртуальными средами с помощью venv и virtualenv — утомительная и утомительная задача.К счастью, у нас есть другой инструмент под названием Pipenv, который является последним рекомендуемым инструментом управления пакетами на официальном сайте Python.org, который может помочь нам не создавать виртуальные среды.Установка и управление зависимостями очень легко. Pipenv может автоматически создавать и управлять виртуальной средой для вашего проекта, он может добавлять/удалять имена пакетов в Pipfile при установке/удалении файлов пакетов.
Зачем использовать Pipenv?
Pipenv решает следующие практические задачи:
- Вам больше не нужно вручную создавать виртуальную среду, Pipenv сделает это за вас автоматически. Проще говоря, pipenv и virtualenv работают вместе.
- Управление файлом requirements.txt приводит кнекоторые проблемы, поэтому Pipenv заменяет файл requirements.txt на Pipfile и Pipfile.lock, что больше подходит для обычных сценариев использования.
- Безопасность. Широкое использование проверки хэшей для автоматического выявления уязвимостей безопасности.
- Просмотр графических зависимостей в любое время.
- Упростите процесс разработки, загрузив файлы .env.
Хорошо, давайте начнем изучать pipenv.
Есть много способов установить pipenv, давайте рассмотрим два рекомендуемых:
Установить с пипом
Официально рекомендуемый метод установки — использовать pip. Убедитесь, что у вас установлены Python и pip, если нет, проверьте ссылку в начале статьи. Если pip уже установлен, установите pipenv с помощью следующей команды
$ pip install --user pipenv
Эта команда устанавливает pipenv на уровне пользователя (не глобально). Если оболочка сообщает, что команда pipenv не может быть найдена после установки, вам необходимо добавить каталог bin домашнего каталога текущего пользователя Python в переменную среды PATH. Если вы не знаете, где находится домашний каталог пользователя Python, используйте следующую команду, чтобы узнать:
$ python -m site --user-base
Вы увидите вывод, похожий на следующий
/home/sk/.local
Это мой домашний каталог Python, а каталог bin —/home/sk/.local/bin
, это понятно? ОК, выполните следующую команду:
$ pipenv --update
В любой момент вы можете обновить pipenv с помощью следующей команды
$ pip install --user --upgrade pipenv
$ pipenv --update
Установить с помощью пипси
Pipsi — это инструмент, который помогает вам устанавливать скрипты Python в изолированных виртуальных средах. Установить пипси, выполнить
$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
Следуя инструкциям по установке, вы должны изменить переменную среды PATH. После установки pipsi используйте следующую команду для установки pipenv
$ pipsi install pew
$ pipsi install pipenv
Наконец, проверьте установку с помощью следующей команды
$ pipenv --update
Чтобы обновить pipenv, просто выполните
$ pipsi upgrade pipenv
Управление пакетами Python с помощью pipenv
выполнить в оболочкеpipenv
команда для просмотра доступных команд и общих параметров
$ pipenv
Пример вывода выглядит следующим образом
Установить пакет
Создайте новый каталог проекта или переключитесь на существующий каталог проекта.
$ mkdir myproject
$ cd myproject
Установите зависимости для вашего проекта
$ pipenv install requests
использоватьls
Команда для поиска в текущем каталоге проекта, вы найдете два файла: Pipfile и Pipfile.lock. Pipfile содержит информацию о последнем установленном файле пакета, такую как имя, версия и т. д. Используйте Pipfile для отслеживания зависимостей проекта при переустановке зависимостей проекта или совместном использовании проектов с другими.
$ cat Pipfile
Pipfile.lock содержит информацию о вашей системе, зависимости всех установленных пакетов и информацию об их версиях, а также информацию о проверке хэшей всех установленных пакетов и их зависимостей.
$ cat Pipfile.lock
Теперь установите другой пакет и снова посмотрите на содержимое этих двух файлов. Вы обнаружите, что Pipfile теперь содержит два установочных пакета.Pipfile.lock также содержит все зависимости установленных пакетов и информацию об их версиях, а также информацию о проверке хэшей всех установленных пакетов и их зависимостей. Эти два файла автоматически обновляются каждый раз, когда вы устанавливаете новый пакет зависимостей.
Ты заметил? Я не создавал виртуальную среду. Pipenv автоматически создал виртуальную среду для этого проекта, интересно, где она находится? Используйте следующую команду, чтобы просмотреть расположение виртуальной среды.
$ pipenv --venv
/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Чтобы просмотреть сведения о корневом каталоге проекта, используйте
$ pipenv --where
/home/sk/myproject
Как видно из вывода приведенной выше команды,/home/sk/myproject
мой корневой каталог проекта,/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
— это каталог виртуальной среды для проекта.
ты можешь использовать этоls
команда для просмотра содержимого каталога виртуальной среды.
ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
пакет обновления
$ pipenv update
Эта команда удалит все пакеты и переустановит последнюю версию.
Проверить целостность пакета
Вас беспокоят дыры в безопасности установленных пакетов? Неважно, pipenv может проверить это для вас, выполните следующую команду
$ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!
Вышеупомянутая команда проверяет наличие уязвимостей безопасности в отношении маркеров PEP 508 в Pipfile.
Просмотр дерева зависимостей
мы выступаемpipenv graph
посмотреть, что происходит
$ pipenv graph
Вы можете видеть, что команда отображает дерево зависимостей.
удалить пакет
Удалите пакет с помощью следующей команды
$ pipenv uninstall requests
Un-installing speedtest-cli…
Uninstalling speedtest-cli-1.0.7:
Successfully uninstalled speedtest-cli-1.0.7
Removing speedtest-cli from Pipfile…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!
удалить все пакеты
$ pipenv uninstall --all
Un-installing all packages from virtualenv…
Found 1 installed package(s), purging…
Environment now purged and fresh!
Посмотреть подробное использование
$ pipenv -h
или
$ pipenv --man
После того, как я использую pipenv, он кажется более удобным, чем pip. Поскольку это официально рекомендуется Python.org, вы можете отказаться от использования venv и virtualenv при установке пакетов Python.
Это все, что касается сегодняшнего урока, так что следите за обновлениями, чтобы не пропустить новые интересные статьи.
ресурс:
Постпереводческая практика
У меня есть некоторые проблемы с Mac:
- Необходимо указать переменную среды LOCALE export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
- Нужно обновить pip до последней версии, лучше всего указать параметр --upgrade при установке pipenv pip install --user --upgrade pipenv
- При установке некоторых пакетов будет сообщено об ошибке, и файл Pipfile.lock не может быть создан.GitHub.com/друзья боятся/pipegirl…
- В этом руководстве не рассказывается, как использовать автоматически созданную виртуальную среду.официальная документациявнутри:
$ pipenv run python main.py