【发布时间】:2014-10-20 05:12:46
【问题描述】:
我正在尝试从同一个 python 模块导入不同的 Django 项目 settings 文件。
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)
【问题讨论】:
-
你把这个导入python模块放在哪里了?在 'home/Desktop/test1' 的文件夹下?
-
脚本模块不在“/tmp”目录下
-
对我来说看起来像是 xy 问题 (xyproblem.info)。愿意解释一下您为什么要这样做吗?
-
我正在尝试通过一个脚本更改我的不同应用程序的所有用户的密码。所有用户的密码都相同。我正在导入设置,因为我想导入用户表来更改每个用户的密码。
标签: python django import settings