2010-01-24 3 views
2

Я создал файл расширения markdown (называемый mdx_xxx.py) для проекта django, над которым я работаю, но я не могу решить, куда его поместить.Правильное место для размещения файла расширения уценки в проекте django?

В документации указано, что файл должен находиться на PYTHONPATH, и я видел несколько сообщений в блоге, в которых можно было просто поместить файл в корневую директорию проекта.

Однако это кажется странным местом для меня, поскольку я бы предпочел увидеть его в соответствующем каталоге приложений, но это уже не на PYTHONPATH.

Может ли какой-нибудь опытный программист django пролить свет на эту проблему?

Thanks

ответ

1

Требуется, чтобы файлы расширений, предназначенные для прямого использования на пути Python, а не внутри какого-либо пакета, являются (IMO) неудачным ограничением реализации уценки Python.

Если ваше расширение очень специфично для вашего проекта, я думаю, что его размещение в корне проекта является лучшим вариантом.

С другой стороны, если ваше расширение многоразового использования в других случаях, я бы упаковал его с помощью простой setup.py и установил его в virtualenv, используя pip, как и все мои другие зависимости.

1

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

0

Если вы используете стандартную библиотеку метокдана из pip (укороченная установка меток) теперь в версии 2.3.1, расширение может быть где угодно. Вам просто нужно предоставить пунктирный путь. Старинный стиль - наличие его непосредственно на PYTHONPATH в модуле с префиксом mdx_ все еще работает.

У меня есть это в коде приложения: django_file_downloads.mdx_download.

Чтобы использовать один из шаблонов Джанго:

{% load markup %} 
{{ variable|markdown:'django_file_downloads.mdx_download' }} 

 Смежные вопросы

  • Нет связанных вопросов^_^