2014-10-20 63 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

你把这个导入python模块放在哪里?在'home/Desktop/test1'文件夹下? – 2014-10-20 07:22:51

+0

没有脚本模块位于“/ tmp”中的不同目录中 – 2014-10-20 07:30:58

+0

对我来说看起来像一个xy问题(http://xyproblem.info/)。小心解释你为什么要这么做? – 2014-10-20 08:08:24

回答

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

但是,如何在第一次迭代中起作用,因为您已在最后执行了导入设置命令。 – 2014-10-20 08:47:42

+0

@TanveerAlam你在路径中没有settings.py? – 2014-10-20 08:53:40

+0

不,我在sys.path中添加settings.py所在的项目目录路径,而且我试图导入它。 – 2014-10-20 09:04:20

相关问题