Django项目和独立Python项目

时间:2013-03-11 14:08:48

标签: python django

我有以下文件结构:

ihe/
├── dcmt
│   ├── actions
│   ├── calendar_observer
│   ├── cms
│   ├── consumption
│   ├── data_mining
│   ├── dcmt
│   ├── dcmt_db
│   ├── dcmt_db.bak.bak
│   ├── dcmt_db.sqlite
│   ├── devices
│   ├── d.py
│   ├── gadgets
│   ├── history 
│   ├── houses
│   ├── hwc_settings
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── manage.py
│   ├── notifications
│   ├── profitable
│   ├── rules
│   └── schedule
├── hwc
│   ├── configuration
│   ├── daemons
│   ├── database
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── utils
│   └── wrapper
├── __init__.py
├── __init__.pyc

dcmt是一个django项目。 hwc是纯粹的python。但是例如在hwc / daemons中有一个runme.py脚本。在runme.py脚本中,我希望能够从django项目中导入模型。现在据我所知,我必须有正确的python路径,然后以某种方式设置django设置。我的问题是我如何做到这一点,以便整个hwc模块我只需要这样做一次?

1 个答案:

答案 0 :(得分:1)

您的项目结构似乎有点混乱。

将Django项目放在另一个包层次结构中可能不是一个好主意。许多导入路径假设您的项目位于顶级包中,并且您可能没有遇到问题的唯一原因是Python 2.x仍支持相对导入(已在3.x中删除)。这使得对包的引用非常模糊,并且可能导致奇怪的错误。

从我所看到的,您的设置包实际上被称为(完全限定的)ihe.dcmt.hwc_settings。如果ihe在您的Python路径中(检查您尝试运行的脚本中的sys.path的值),那么(即完全限定的路径)可能是DJANGO_SETTINGS_MODULE应该指着。

如果要在脚本中挂钩Django的功能,可能需要查看编写manage.py命令的文档。这样可以让您更一致地编写与Django相关的脚本,并且可以省去自己正确引用和初始化Django设置的担忧。