我为我正在研究的django项目创建了一个降价扩展文件(名为mdx_xxx.py),但我无法真正决定放在哪里。
文档说该文件应该驻留在PYTHONPATH上,我看到几篇博客文章邀请将文件放在项目的根目录中。
然而,这对我来说似乎是一个奇怪的地方,因为我宁愿在相关的应用程序目录中看到它,但它不再是PYTHONPATH了。
一些经验丰富的django程序员可以对这个问题有所了解吗?
由于
答案 0 :(得分:1)
并非一切都应该在您的项目中。这是一种要求,一种依赖。你仍然可以将它们打包在一起,我认为你需要把它放在最顶层。这基本上意味着可以从与项目本身相同的位置导入。就个人而言,我把所有东西都推到了一个版本,所以它很干净。如果您这样做,那么您的部署过程应该包括将您的项目和任何依赖项安全地放入该virtualenv中。否则,到路径上的任何位置。
答案 1 :(得分:1)
要求扩展文件直接存在于Python路径上,而不是任何包内,(IMO)是Python降价实现的一个不幸的限制。
如果您的扩展程序非常特定于您的项目,我认为将其放在项目根目录中是最佳选择。
另一方面,如果你的扩展在其他情况下是可重用的,我会用一个简单的setup.py打包它,并使用pip将它安装到virtualenv中,就像我对所有其他依赖项一样。
答案 2 :(得分:0)
如果您现在在2.3.1版本中使用pip(pip install markdown)的标准降价库,则扩展名可以在任何位置。你只需要为它提供虚线路径。旧式 - 在模块前缀mdx_中直接在PYTHONPATH上使用它仍然可以。
我在我的应用代码中有它:django_file_downloads.mdx_download。
从django模板中使用它:
{% load markup %}
{{ variable|markdown:'django_file_downloads.mdx_download' }}