Начало работы pipenv в Virtualenv, где работает приложение - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть приложение Django, работающее в Virtualenv.Я хотел бы перейти на pipenv.Однако установка pipenv завершается неудачно с ошибкой зависимости.Учитывая, что приложение работает, я полагаю, что все библиотеки находятся в Virtualenv.

Когда приложение работало через Virtualenv + pip, мне пришлось разрешить зависимость от библиотеки, но я смог и заставил ее работать.Смысл перехода на pipenv состоит в том, чтобы избежать проблем с зависимостями при настройке группы из нескольких членов.

Есть ли способ заставить pipenv просто взять версии библиотек в virtualenv и просто пойти с этим?

1 Ответ

0 голосов
/ 10 декабря 2018

Если у вас есть файл setup.py, вы можете установить его и зависимости в install_requires с pipenv install ..Еще лучший способ сделать так, чтобы это была редактируемая зависимость для разработки: pipenv install -e . --dev.

Затем, когда вы захотите поработать над приложением, pipenv install --dev установит базовые пакеты и эквивалент setup.py develop.

Вы также можете создать Pipfile / virtual env из файла needs.txt.Таким образом, вы можете сделать «стоп-кадр», а затем установить его из файла требований.

Замораживание ваших зависимостей

Из виртуального окружения вашего рабочего приложения экспортируйте свои зависимости в файл требований.

pip freeze > frozen-reqs.txt

Затем создайте новый виртуальный env с pipenv и установите из замороженных требований.

pipenv install -r frozen-reqs.txt

Затем перейдите в Pipfile и запуститеудаление всего, кроме зависимостей верхнего уровня, и повторная блокировка.Также, когда это возможно, избегайте закрепления требований, поскольку это значительно усложняет разрешение зависимостей.

Вы можете использовать pipenv graph и pipenv graph --reverse, чтобы помочь с этим.

...