Обновление Pipfile - PullRequest
       65

Обновление Pipfile

1 голос
/ 28 сентября 2019

Я только начал новый проект Django и использую Postgresql в качестве базы данных, поэтому я установил psycopg2, чтобы он работал правильно.Когда я развернул проект в начале, приложение не работало, потому что psycopg2 не был установлен на производственном сервере.Как я быстро понял, это потому, что psycopg2 отсутствовал в моем pipfile.

Итак, мой вопрос:

Нужно ли обновлять pip-файл вручную каждый раз, когда я устанавливаю что-то для своего проекта?Я думал, что pipfile будет заботиться об этом автоматически каждый раз, когда я что-то устанавливаю.

Разве нет ничего похожего на pip freeze > requirements.txt, где я могу выполнить обновление одной короткой командой?

1 Ответ

0 голосов
/ 28 сентября 2019

Нужно ли обновлять pip-файл вручную каждый раз, когда я устанавливаю что-то для своего проекта?Я думал, что pip-файл будет заботиться об этом автоматически каждый раз, когда я что-то устанавливаю.

requirements.txt - это просто файл.Вокруг этого нет логики, которая обновляет это (если, конечно, у вас нет IDE, которая делает это).По сути, это не тот файл, который используется для менеджера пакетов.Вы можете использовать любой файл и несколько файлов (например, иногда создается файл requirements_test.txt, содержащий дополнительные пакеты, которые должны быть установлены при тестировании программного обеспечения).

YouСамо по себе нет необходимости обновлять файл requirements.txt при каждой установке программного обеспечения, если файл requirements.txt правильный при развертывании программного обеспечения (на другом компьютере), это нормально.

Вы можетеоднако автоматизировать это в некоторой степени.Например, если вы используете git subversioning, вы можете создать pre-commit ловушку, которая будет запускаться каждый раз, когда вы фиксируете изменения.Например, путем создания исполняемого файла в .git/hooks/pre-commit в хранилище.Нечто похожее:

#!/bin/bash

. env/bin/activate
pip freeze > requirements.txt

Каждый раз, когда вы делаете коммит, requirements.txt будет "гармонизирован" с пакетами, установленными в виртуальной среде.

...