Python __import__ is only giving me top level module
本问题已经有最佳答案,请猛点这里访问。
我正在做
1 | module = __import__("client.elements.gui.button", globals(), locals(), [], 0) |
但它只是返回
我的问题是什么?
这就是
When the name variable is of the form
package.module , normally, the top-level package (the name up till the first dot) is returned, not the module named by name.
实际上不应该使用
接受的答案是正确的,但是如果你在文档中继续阅读,你会发现,使用
1 | module = __import__('client.elements.gui.button', fromlist=['']) |
只要它是一个非空的列表,你给
如前所述,您应该使用
它只获得最高级别,但您也可以这样处理:
1 2 3 4 5 6 7 | module_name = 'some.module.import.class' module = __import__(module_name) for n in module_name.split('.')[1:]: module = getattr(module, n) # module is now equal to what would normally # have been retrieved where you to properly import the file |