Я скачал проект Python, и он содержит как виртуальную среду, так и файл requirements.txt. Зачем вам оба? Насколько я знаю, виртуальные среды уже содержат необходимые модули. Есть идеи, когда и почему эта комбинация будет полезна?
Зачем вам создавать файл requirements.txt в виртуальной среде на Python?
Ответы (2)
Хотя это технически возможно, я не нахожу для этого веских причин. Наличие обоих сбивает с толку, потому что неясно, какой из них является «хозяином». И вы должны (или нет?) беспокоиться о согласованности между установленными пакетами и файлом requirements.txt.
Также venv и установленные пакеты во многих случаях зависят от базовой ОС, у них есть бинарники, разная компоновка и т. д. Обычно рекомендуется писать независимый от ОС код.
В общем, я бы придерживался файла requirements.txt и удалял любую папку venv из репозитория проекта.
~/.virtualenvs
. Работает как шарм.
- person freakish; 29.06.2017
Вы не можете распространять каталог virtualenv со своим проектом, потому что его содержимое может различаться в зависимости от целевой операционной системы и версии операционной системы. В частности, виртуальная среда, включающая библиотеки со скомпилированными компонентами, установленными в Ubuntu 14.04, будет отличаться от эквивалентной виртуальной среды, установленной в Ubuntu 16.04.
Вместо этого вы должны распространять свой файл requirements.txt
(просто соглашение, вы можете использовать любое имя файла, которое хотите), чтобы конечный пользователь мог воссоздать виртуальную среду на своей машине.