2013-03-11 79 views
3

我有以下文件结构:Django项目和独立Python项目

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 /守护进程中有一个runme.py脚本。在那runme.py脚本我想能够从django项目导入模型。现在,据我了解,我必须有正确的Python路径,然后以某种方式设置Django的设置。我的问题是我如何最好地做到这一点,以便整个hwc模块我只需要做一次?

回答

1

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

在另一个包层次结构中有一个Django项目可能不是一个好主意。很多导入路径假定你的项目是在顶层包中,你可能没有遇到问题的唯一原因是Python 2.x仍然支持相对导入(已经在3.x中被删除)。这使得对软件包的引用非常模糊,并可能导致怪异的错误。

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

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

+0

得到了别人的同样推荐,我会检查一下。 – 2013-03-13 17:44:56