Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 24, 2010 23:37:34

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Third apps in project

Всем привет.

Тема следующая:

1) есть приложение (например) “debug_toolbar” в котором есть код: “import debug_toolbar.urls”

2) в корень проекта ложим каталог “debug_toolbar” – это для того что бы импорт проходил без ошибок.

3) Но для того что бы не ложить это (2) в корневой каталог нужно или установить приложение глобально в систему или через virtualenvwrapper и подобное, но если я не хочу устанавливать, а хочу положить в отдельный каталог проекта например пусть это будет каталог apps_third/debug_toolbar, то все сломаеться (в смысле (1) import debug_toolbar.urls).

Какие могут быть еще варианты решения, что бы не загромождать корневой каталог проекта, потому что подобных приложений может быть много, которые в своем коде имею код (1), который изменять не желательно.


(Вариант с симлинками не подходят)
Если нет вариантов то так и скажите :)

Спасибо.

ps
Надоело сваливать все в корень

Офлайн

#2 Апрель 25, 2010 00:27:11

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Third apps in project

ну и добавь в sys.path apps_third каталог

Офлайн

#3 Апрель 25, 2010 10:57:51

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Third apps in project

В settings.py пропиши следующее:

import os.path
import sys

PROJECT_ROOT = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(PROJECT_ROOT, 'apps'))



Офлайн

#4 Апрель 25, 2010 23:37:48

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Third apps in project

Про вариант

slav0nic
ну и добавь в sys.path apps_third каталог
знаю, но он не работает если в системе глобально установлен пакет то есть например:
(кстати на на этом попался когда размещал проект на хостинге):

#pip install django-registration
a в INSTALLED_APPS написать:

'registration',


даже если в sys.path прописан мой локальный путь к апликухе в проекте. То есть стартует не апликуха проекта, а апликуха, установленная в системе. Конечно можно прописать в INSTALLED_APPS так: ‘apps.registration’ и все будет впорядке, но тогда смысл варианта с sys.path для данного случая нулевой.



Совет –>
lorien
Ещё можно virtualenv использовать.
не подходит так так в начале топика я исключил этот вариант

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version