Просто, когда я думаю, что начинаю разбираться с django, я начинаю читать Two Scoops Of Django, где они советуют использовать Cookiecutter вместо обычного запуска проекта django-admin. Авторы Two Scoops являются большими на виртуальных языках. Я использую Anaconda, потому что везде это лучше, чем virtualenv. Я искушаюсь избавиться от анаконды и просто использовать virtualenv, чтобы попытаться заставить это работать, но подумал, что я попрошу здесь сначала.
Кто-нибудь знает, как заставить cookiecutter работать с Anaconda???
Я думаю, вы немного смущены тем, что на самом деле anaconda и что такое виртуальная среда. В конце концов, они оба являются просто установками python, которые (надеюсь) включают в себя двоичные файлы, необходимые для запуска вашего кода.
Ответ на ваш вопрос заключается в том, чтобы использовать виртуальную среду, а не anaconda для вашего проекта, а затем хранить ваши зависимости в файле requirements.txt, чтобы любой, у кого есть базовый код проекта, мог установить точные зависимости, необходимые для проекта, в их виртуальную среду,
Итак, в чем разница? Анаконда - это, по сути, питон с набором предустановленных библиотек, предназначенных для анализа данных. Это означает, что вам, как программисту, не нужно беспокоиться об установке matplotlib, панд или множестве других библиотек. Он также включает двоичный код, который выполняет код python.
Виртуальная среда - это, по сути, бароботная среда python. Он буквально копирует двоичные файлы, необходимые для запуска кода python, где бы вы ни создали свою виртуальную среду. Обычно я создаю среду в моем локальном каталоге (python 3. 6+):
python -m venv.venv
который создаст виртуальную среду в моем текущем каталоге в скрытом каталоге .venv
. Я могу установить зависимости к этой среде по мере необходимости для моего проекта после установки его на интерпретатор по умолчанию с использованием source
. например
source.venv/bin/activate
Вы заметите, что если вы запустите which python
, он теперь укажет на вашу оболочку, а не на то, что раньше был python по умолчанию. Например,
$ which python
/Users/you/path/to/.venv
теперь вы должны установить свои зависимости по мере необходимости.. т.е.
pip install <library>
или даже лучше
pip install requirements.txt
conda install ..
вместо pip install ..
). Некоторые люди любят использовать одно или другое, но в конце концов это не имеет большого значения. virtualenv и pip - это нормально. Я использую их все время. Я бы не стал путать себя с одним или другим. Просто осознайте, что они делают одно и то же. Я рекомендую использовать virtualenv, пока вы не поймете все, так как это реализация по умолчанию на python