2014-10-20 2 views
0

다른 Django 프로젝트 설정 파일을 동일한 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) 
+0

어디서 가져온이 파이썬 모듈을 넣었습니까? 'home/Desktop/test1'폴더 아래에 있습니까? –

+0

스크립트 모듈이 "/ tmp"의 다른 디렉토리에 없습니다. –

+0

xy 문제 (http://xyproblem.info/)가 생겼습니다. 당신이 이것을하려는 이유를 설명하는 치료? –

답변

0

패키지 이름을 가져 와서 관련없는 줄을 주석보십시오. 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) 
+0

하지만 결국 가져 오기 설정 명령을 실행하면 첫 번째 반복 작업에서 어떻게 작동할까요? –

+0

@TanveerAlam 경로에 settings.py가 없습니까? –

+0

아니요, settings.py가 존재하며 가져 오기를 시도하고있는 sys 경로에 프로젝트 디렉토리 경로를 추가하고 있습니다. –