Skip to main content
 首页 » 编程设计

python之编写python包在django内外运行

2024年08月26日33shanyou

我正在编写 python 帮助程序包以在我的 django 项目中运行,但我也想在其他常规 python 代码(例如 django 之外)中使用它。

问题是我想从 django conf.settings 或其他模块(如果它在 django 之外)获取设置。例如。像这样的东西:

try: 
     from django.conf import settings 
except ImportError: 
     import my_settings as settings 
 
value = settings.SOME_SETTINGS 

问题是 django.conf 导入不会失败,因为安装了 django。所以问题是检查我是否在 django 中的标准方法是什么?

谢谢。

请您参考如下方法:

您可以将路径附加到您的 Django 应用程序,然后导入应用程序的设置并像在 Django 应用程序中一样使用它:

import sys, os 
sys.path.append('/path/to/your/django/app') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
from django.conf import settings 

只要设置正确,您也可以删除 sys.path.append!

在 Django 中,您可以检查 DJANGO_SETTINGS_MODULE 是否在 os.environ 中,然后加载它:

# If we are outside a Django app append the app path 
#  to the python path to import the setting 
if 'DJANGO_SETTINGS_MODULE' not in os.environ: 
    sys.path.append('/path/to/your/django/app') 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
 
# This way the setting will be imported in both cases 
from django.conf import settings