Я начинаю свой собственный проект Django-Oscar, и мне интересно, можно ли изменить местоположение 'oscar'-directory (содержащего все apps, models.py и т. д.), Переместив его из каталога site-packages при установке по умолчанию в моем virtual environment - в мой project root directory.
Можно ли просто скопировать 'oscar'-directory и вставить его в новое место, предполагая, что я также изменю расположение 'INSTALLED_APPS', и убедитесь, что мой project-structure такой же (т.е. не меняю такие вещи, как directory-name 'oscar', чтобы imports и т. д. Сломались) )? Если да, то будет ли это означать, что я могу удалить все это вместе с site-packages (DRY-решение)?
Это имитирует sandbox-installation, и я буду чувствовать себя более комфортно как новичок, которому нужны видимые накладные расходы.
Спасибо!






Да, ты можешь это сделать. Хотя это не рекомендуется, потому что тогда вам будет сложнее включить последние изменения Оскара в свой проект, и это не рекомендуемый способ настройки / расширения функциональности Оскара.
Вместо того, чтобы удалять оскар из site-packages, лучше pip uninstall django-oscar.
Кроме того, можно одновременно установить программу oscar или скопировать ее в каталог проекта. По умолчанию Python, тот, который находится в каталоге вашего проекта, будет импортирован (а не установлен). Таким образом, вы можете комфортно работать с ним локально. Иногда я делаю это, чтобы безопасно протестировать определенные приложения django (например, oscar) с небольшими изменениями (в среде разработки), но без необходимости фиксировать / проталкивать эти изменения в производственную среду в основном потому, что это проще, чем следовать рекомендуемым методам. расширить приложение.
Нет, как я уже сказал, в вашем случае просто скопируйте папку в свой проект. Это самый удобный и безопасный способ. Если вы хотите включить будущие обновления из исходного источника, просто используйте что-то вроде meld, чтобы сравнить изменения в вашем каталоге и в каталоге исходного источника.
Кроме того, вы должны отметить, что oscar популярен, потому что он очень расширяемый. Вы можете поддерживать свое отдельное репо для oscar и вносить в него изменения и использовать это репо вместо исходного пункта в своей производственной среде.
Я очень ценю ваш отзыв! Большое тебе спасибо. Хотя могу ли я сказать, что это не так уж и далеко от рекомендуемого способа разветвления / расширения приложения в документации? Единственные реальные отличия в этом случае, поскольку я последовал вашему совету не удалять пакет Oscar-site-package, заключается в том, что я `` переопределяю '' все, а также копирую / расширяю несколько дополнительных файлов (Oscar.models, контекстные процессоры. ..)? Возможно, я ошибаюсь, но мне как новичку так кажется!
Было бы неправильно так говорить. Преимущества разветвления приложения упоминаются в документации - классы загружаются динамически и почему так. Короче говоря, в основном это делается для избежания дублирования, простоты обслуживания и обновления с последними изменениями.
В моем случае я буду работать над расширением функциональности Oscar в течение нескольких месяцев, и рекомендуемый способ настройки просто не охватывает этого. Что вы думаете о переустановке django-oscar в режиме редактирования / разработчика - 'pip install -e path / name /'? Стоит ли об этом подумать?