python - 从子目录使用 django.setup() ,如何引用设置?

标签 python django python-2.7

我的 django 应用程序外部有一个文件夹,我想用它从 django 中提取一些数据以在某些外部脚本中使用。

但是,当我运行安装程序时,出现以下错误:

[root@localhost cronjobs]# python
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "infternal.settings")
'infternal.settings'
>>> from django.conf import settings
>>> import django
>>> django.setup()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/django/__init__.py", line 22, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/lib64/python2.7/site-packages/django/conf/__init__.py", line 97, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportE

如何引用 django 文件夹之外的设置模块?

谢谢

编辑 我有多个外部脚本,它们使用来自 django DB 和 django 中已有功能的信息,我定期使用 cron 运行这些脚本。

我想将这些脚本从 django 应用程序的根目录移到子目录中并从那里运行它们,但现在我无法导入设置。

旧结构:

APP
-Site
-Site
-APP
--settings.py
manage.py
script.py

脚本在这里运行良好

新结构:

APP
-Cronjobs
--script.py
-Site
-Site
-APP
--settings.py
manage.py

脚本无法再找到ininternal.settings

最佳答案

你可以使用这个函数,我通常用它来从 django 外部运行脚本。

def __setup_django(root_path, settings):
    import os
    import django

    os.chdir(root_path)

    # Django settings
    sys.path.append(root_path)
    os.environ['DJANGO_SETTINGS_MODULE'] = settings

    django.setup()

PROJECT_PATH = "/home/a/b/c/someproject"
PROJECT_SETTING = "someproject.settings.local"

__setup_django(PROJECT_PATH, PROJECT_SETTING)

关于python - 从子目录使用 django.setup() ,如何引用设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42392185/

相关文章:

python - 当函数在 Pandas 数据帧中工作时,PySpark udf 返回 null

python - Python 中的二维数值积分

python - 使用 UUID 时 django-taggit 不工作

Python打印语法错误树莓派

python - pandas.read_csv 中的 dtype=None 有何作用?

Python:遍历字符串并仅打印特定单词

python - 将 html 表单数据获取到基于 django 类的 View 中

Django,如何在更新表单 View 中包含预先存在的数据

python - 无法从类中导入

python-2.7 - 在 Python C 扩展中使用新类型