Добавлять ли virtualenv в git?

Собственно вопрос для более быстрой и удобной развертки решил все окружение собрать в virtualenv, стоит ли закидывать его в репозиторий git и это вообще легально? А если нет, какие лучше способы использовать для синхронизации рабочего окружения с несколькими рабочими компьютерами + сервер.
  • Вопрос задан
  • 10034 просмотра
Решения вопроса 1
idegree
@idegree
Senior Workaround Developer
Лучше писать зависимости в requirements.txt и уже этот файлик добавлять в git.
Пример файла (можно с указанием версий через ==, можно без):
Django==1.8.5
django-flat-theme==1.1.1
mysql-python==1.2.5
gunicorn==19.4.1
pytz==2015.6
python-memcached==1.57
django-debug-toolbar==1.4


При клонировании репозитория на другой компьютер или сервер выполните (предварительно создав и активировав нужное виртуальное окружение):
$ pip install -r requirements.txt
Таким образом, вы разом установите все необходимые пакеты.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Stqs
senior software developer
Частенько бывает что часть пакетов нужна при разработке и не нужна на продакшене. И наоборот. Поэтому желательно бы еще разделять requirements для разработки и для продакшена.
Файлы с requirements могут включаться один в другой. Таким образом обычно зависимости можно разделить на 3 отдельных файла.
Например:
reqs/
- common.txt
- prod.txt
- dev.txt

common.txt будет содержать все обязательные общие зависимости. Пример с потолка:
Django==1.8.5
mysql-python==1.2.5


dev.txt будет содержать пакеты специфичные только для разработки но включая common. Пример опять же с потолка:
-r common.txt
ipyhton
ipdb
django-debug-toolbar==1.4


prod.txt тоже будет включать common но так же содержать вещи которые на продакшене обязательны а в Вашем локальном окружении не нужны вовсе:
-r common.txt
gunicorn==19.4.1
whateverelse=1.0.0


соответственно когда мы собираемся разрабатывать мы устанавливаем зависимости так
pip install -r reqs/dev.txt
в продакшене
pip install -r reqs/prod.txt
Ответ написан
Комментировать
@MAGistr_MTM
Учусь программировать
В директории с ГИТ-ом пропиши:
$ pip freeze > requirements.txt
И в этой же директории будет создан файл с нужными пакетами. А потом как написал Андрей Шубин
Ответ написан
Комментировать
@GeraZlo Автор вопроса
Всем спасибо за ответы, вам удалось раскрыть проблему даже лучше чем я того ожидал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы