Что такое Пипенв
В этой статье я введем базовое использование Pipenv со старой рабочим процессом управления зависимостями в качестве сравнения. Для более подробного использования, пожалуйста, обратитесь кДокументация Pipenv, или выступление Кеннета Рейца на PyCon 2018Pipenv: будущее управления зависимостями Python.
Кстати, моего еще нет в продаже«Практика веб-разработки на Flask»Все примеры программ используют Pipenv для управления зависимостями.
Совет Если вы используете концепцию virtualenv и виртуальные среды не знакомы, старая статья за колонкой"Путешествие Фляжки"Сделайте простое понимание.
Зачем использовать Pipenv
Pipenv автоматически поможет вам управлять виртуальными средами и файлами зависимостей и предоставляет ряд команд и параметров, которые помогут вам реализовать различные зависимости и операции, связанные с управлением средой. Словом, удобнее, полноценнее и безопаснее. ты можешь пройтиДокументация PipenvВведение в начале, чтобы понять его подробные особенности. Слоган Pipenv — «Рабочий процесс Python Dev для людей», как человек, конечно, вы должны попробовать...
Как использовать Пипенв
Предположим, мы хотим написать программу для блога, зависимости проекта — Flask и Flask-WTF. Кстати, Pipenv можно установить с помощью следующей команды:
$ pip install pipenv
Ниже я приведу сравнение необходимых команд через разные операции, СТАРЫЙ (старый) означает использование pip и virtualenv, НОВЫЙ (новый) означает использование Pipenv.
Создайте виртуальную среду
- OLD
$ virtualenv venv
Совет Здесь venv — это имя каталога виртуальной среды, вы можете свободно изменить его, это создаст папку venv в корневом каталоге вашего проекта, содержащую автономную среду интерпретатора Python.
- NEW
$ pipenv install
Pipenv автоматически создаст для вас виртуальную среду, автоматически сгенерировав случайное имя каталога виртуальной среды.
Активировать виртуальную среду
- OLD
В системе Linux или MacOS:
$ . venv/bin/activate
Окна:
> venv\Scripts\activate
- NEW
$ pipenv shell
Кроме того, Pipenv также предоставляет команду запуска pipenv, аргументы, добавленные к команде, будут выполняться непосредственно как команды в виртуальной среде, что позволяет выполнять команды в виртуальной среде без явной активации виртуальной среды. Например, pipenv run python запустит интерпретатор Python в виртуальной среде.
Установка зависимостей в виртуальную среду
- OLD
$ . venv/bin/activate # 需要先激活虚拟环境
(venv)$ pip install flask flask-wtf
- NEW
С Pipenv вы можете установить его с помощью команды pipenv install независимо от того, активирована ли у вас виртуальная среда или нет:
$ pipenv install flask flask-wtf
Фактически, для нового проекта вам не нужно вручную использовать pipenv install для создания виртуальной среды. При использовании pipenv install xxx для прямой установки зависимостей, если текущий каталог не содержит виртуальной среды, Pipenv автоматически создаст ее.
записывать зависимости
- OLD
(venv)$ pip freeze > requirements.txt
Эта команда запишет список зависимостей в файл requirements.txt. Всякий раз, когда вы устанавливаете или удаляете зависимые пакеты, вам необходимо вручную обновить этот файл. Вы должны быть осторожны, иначе очень легко испортить список зависимостей.
- NEW
При использовании Pipenv вам не нужно ничего делать, Pipenv автоматически будет управлять зависимостями за вас. Pipenv автоматически создаст файлы Pipfile и Pipfile.lock (если они не существуют) при создании виртуальной среды и автоматически обновит Pipfile и Pipfile.lock при установке и удалении пакетов с помощью команд pipenv install и pipenv uninstall.
Заметки Pipfile используется для записи списка зависимостей проекта, а Pipfile.lock записывает подробный список зависимостей фиксированных версий.
Установите зависимости в среде развертывания
- OLD
Когда нам нужно установить все зависимости в новой среде, например в онлайн-среде развертывания, нам нужно повторить приведенные выше несколько команд:
$ virtualenv venv # 创建虚拟环境
$ . venv/bin/activate # 激活虚拟环境
(venv)$ pip install -r requirements.txt # 安装requirement.txt中记录的依赖
- NEW
Чтобы использовать Pipenv, вам нужно только выполнить установку pipenv, которая автоматически установит зависимости, записанные в Pipfile:
$ pipenv install
Дифференцировать зависимости развития
- OLD
При использовании requirements.txt мы вручную добавляем зависимости разработки, создавая отдельный файл requirements-dev.txt. Например, при разработке проекта будет использоваться pytest, поэтому вам нужно вручную создать этот файл, а затем написать:
-r requirements.txt
pytest==1.2.3
При установке зависимостей в новой среде разработки вам необходимо установить зависимости в этот файл:
(venv)$ pip install -r requirements-dev.txt
- NEW
При использовании Pipenv вам просто нужно добавить параметр --dev при установке pytest, и он будет автоматически классифицирован как зависимость разработки (записано в разделе dev-packages Pipfile):
$ pipenv install pytest --dev
При установке зависимостей в новой среде разработки вам нужно только добавить параметр --dev после команды pipenv install для установки зависимостей разработки:
$ pipenv install --dev
Суммировать
Чтобы облегчить вам переход, Pipenv даже предоставляет возможность читать и генерировать файл requirements.txt (при использовании команды установки pipenv он автоматически читает файл requirements.txt для установки зависимостей и создания Pipfile). Надеюсь, эта статья поможет вам быстрее начать работу с Pipenv.
Q&A
В: Установка пакетов Python слишком медленная?
О: Сам Pipenv основан на Pip, поэтому вы также можете заменить источник PyPI. Просто замените соответствующий URL-адрес в Pipfile. Например, следующий Pipfile использует источник изображения, предоставленный Alibaba Cloud:
[[source]]
url = "https://mirrors.aliyun.com/pypi/simple"
verify_ssl = true
name = "pypi"
В: Генерация Pipfile.lock слишком медленная?
О: В отличие от npm и других инструментов управления зависимостями (зависимости определяются в виде обычного текста), для пакетов Python, если вы хотите получить подробные зависимости, вам необходимо загрузить установочный пакет и выполнить файл setup.py, поэтому это займет некоторое время. определенное количество времени. В общем, смена источника PyPI уже обеспечивает огромное ускорение. Если вы все еще не хотите ждать времени для создания Pipfile.lock, вы можете добавить параметр --skip-lock при выполнении команды установки pipenv, чтобы пропустить шаг блокировки, и, наконец, использовать команду блокировки pipenv для выполнения Блокировка операции равномерно.
Вопрос. Настройте путь к папке виртуальной среды.
О: По умолчанию Pipenv автоматически выбирает для вас место хранения виртуальной среды, обычно это C:\Users\Administrator\.virtualenvs\ в Windows и ~/.local/share/virtualenvs/ в Linux или macOS. Если вы хотите создать папку виртуальной среды в каталоге проекта, вы можете установить переменную среды PIPENV_VENV_IN_PROJECT, тогда папка виртуальной среды с именем .venv будет создана в корневом каталоге проекта. Кроме того, вы также можете настроить путь к хранилищу с помощью переменной среды WORKON_HOME.