Django: Перемещение сайта-пакета 'oscar'

Я начинаю свой собственный проект 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, и я буду чувствовать себя более комфортно как новичок, которому нужны видимые накладные расходы.

Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, ты можешь это сделать. Хотя это не рекомендуется, потому что тогда вам будет сложнее включить последние изменения Оскара в свой проект, и это не рекомендуемый способ настройки / расширения функциональности Оскара.

Вместо того, чтобы удалять оскар из site-packages, лучше pip uninstall django-oscar.

Кроме того, можно одновременно установить программу oscar или скопировать ее в каталог проекта. По умолчанию Python, тот, который находится в каталоге вашего проекта, будет импортирован (а не установлен). Таким образом, вы можете комфортно работать с ним локально. Иногда я делаю это, чтобы безопасно протестировать определенные приложения django (например, oscar) с небольшими изменениями (в среде разработки), но без необходимости фиксировать / проталкивать эти изменения в производственную среду в основном потому, что это проще, чем следовать рекомендуемым методам. расширить приложение.

В моем случае я буду работать над расширением функциональности Oscar в течение нескольких месяцев, и рекомендуемый способ настройки просто не охватывает этого. Что вы думаете о переустановке django-oscar в режиме редактирования / разработчика - 'pip install -e path / name /'? Стоит ли об этом подумать?

William Karlsson 21.05.2018 11:07

Нет, как я уже сказал, в вашем случае просто скопируйте папку в свой проект. Это самый удобный и безопасный способ. Если вы хотите включить будущие обновления из исходного источника, просто используйте что-то вроде meld, чтобы сравнить изменения в вашем каталоге и в каталоге исходного источника.

shad0w_wa1k3r 21.05.2018 11:31

Кроме того, вы должны отметить, что oscar популярен, потому что он очень расширяемый. Вы можете поддерживать свое отдельное репо для oscar и вносить в него изменения и использовать это репо вместо исходного пункта в своей производственной среде.

shad0w_wa1k3r 21.05.2018 11:33

Я очень ценю ваш отзыв! Большое тебе спасибо. Хотя могу ли я сказать, что это не так уж и далеко от рекомендуемого способа разветвления / расширения приложения в документации? Единственные реальные отличия в этом случае, поскольку я последовал вашему совету не удалять пакет Oscar-site-package, заключается в том, что я `` переопределяю '' все, а также копирую / расширяю несколько дополнительных файлов (Oscar.models, контекстные процессоры. ..)? Возможно, я ошибаюсь, но мне как новичку так кажется!

William Karlsson 21.05.2018 12:31

Было бы неправильно так говорить. Преимущества разветвления приложения упоминаются в документации - классы загружаются динамически и почему так. Короче говоря, в основном это делается для избежания дублирования, простоты обслуживания и обновления с последними изменениями.

shad0w_wa1k3r 21.05.2018 12:39

Другие вопросы по теме