python - Django 项目和独立 Python 项目

标签 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 模块我只需要这样做一次?

最佳答案

您的项目结构似乎有点困惑。

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

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

如果您想在脚本中使用 Django 的功能,您可能需要查看编写 manage.py 命令的文档。这将使您能够更一致地编写与 Django 相关的脚本,并省去您自己正确引用和初始化 Django 设置的烦恼。

关于python - Django 项目和独立 Python 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15340682/

相关文章:

python - 为 python 安装带有额外模块(筛选、冲浪...)的 OpenCV 3.0

python - 如何手动处理上传的文件数据?

python - 关于karatsuba乘法的问题

python - 用于 Python 的亚马逊 AWS Web 框架

python - 为什么 Web 框架从模板而不是逻辑 block 构建页面?

python - Django - URL 和命名空间

django - 过滤已评估的 QuerySet

python - 在运行时设置 Django ModelForm 可见字段?

python - 如何在 settings.py 中定义常量并在 django 的 View 函数中访问它们

python - 将参数传递给 DB .execute for WHERE IN... INT list