我想用我的Django系统中的settings.py
替换为settings
包含__init__.py
的模块。这将尝试导入以服务器命名的模块,从而允许按服务器进行设置。我如何使用Python的__import__函数'foo import *'
如果我在导入模块之前不知道模块的名称,那么我不能使用import
关键字,而必须使用__import__
函数。但是这不会将模块的内容添加到settings
模块。我需要相当于from MACHINE_NAME import *
。或者我需要一种方法来遍历vars(m)
(其中m
是加载的模块)并将它们添加到当前名称空间。但我无法弄清楚如何引用当前命名空间来完成分配。换句话说,我不能使用setattr(x, ..)
或修改x.__dict__
,因为我不知道x
使用什么。
除了使用exec
之外,我现在想不出别的办法了。这对我来说似乎有点虚弱。我是否错过了Pythonic内省的某些方面,这将允许我在处理当前范围的同时操作它?
此处完全重复:http://stackoverflow.com/questions/147507/how-does-one-do-the-equivalent-of-import-from-module-with-pythons-import – u0b34a0f6ae 2009-10-23 18:04:14
谢谢 - 我做了尝试搜索它,诚实,但当下划线被剥离,__import__不是一个非常具体的搜索术语... :-) – pdc 2009-10-23 18:41:02