簡體   English   中英

導入不同的Django項目設置

[英]Importing different Django projects settings

我正在嘗試從同一python模塊導入不同的Django項目設置文件。

project_path = ["/home/Desktop/test1", "/home/Desktop/test2", "/home/Desktop/test3"]
for j, i in enumerate(project_path):
    if os.path.exists(i):
        sys.path.append(i)
        os.system("fm -rf " + project_path[j - 1] + "/settings.pyc")
        import settings
        print "settings file path>>>", settings.__file__
        project_directory = os.path.dirname(settings.__file__)
        print "Application direcotry>>>", project_directory
        project_name = os.path.basename(project_directory)
        print "Application name>>>", project_name
        sys.path.append(os.path.join(project_directory, '..'))
        project_module = __import__(project_name, '', '', [''])
        # Set DJANGO_SETTINGS_MODULE appropriately.
        sys.path.remove(i)

我得到以下結果:

settings file path>>> home/Desktop/test1/settings.pyc
Application direcotry>>> home/Desktop/test1
Application name>>> test1
settings file path>>> home/Desktop/test1/settings.pyc
Application direcotry>>> home/Desktop/test1
Application name>>> test1
settings file path>>> home/Desktop/test1/settings.pyc
Application direcotry>>> home/Desktop/test1
Application name>>> test1

我的問題是,即使我要刪除項目路徑並追加新路徑,也要導入相同的應用程序路徑。 因此,我無法導入下一個應用程序路徑。

我什至嘗試重新加載設置文件。

import settings
settings = reload(settings) 

嘗試使用包名稱導入並注釋不相關的行。 確保文件夾test1 / test2 / test3首先是軟件包。 如果沒有,請在文件夾內添加__init__.py

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import sys

project_path = ["/home/Desktop/test1", "/home/Desktop/test2", "/home/Desktop/test3"]

for path in project_path:

    sys.path.append(path)
    package_name = path.split('/')[2]

    cmd = 'import ' + package_name + '.settings'
    sys.path.remove(path)  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM