有没有一种方法可以完全重新加载python模块,而不必从上一次导入中获得引用?

有没有一种方法可以完全重新加载python模块,而不必从上一次导入中获得引用?,python,path,python-import,sys,Python,Path,Python Import,Sys,我需要在运行时导入一个模块。我事先不知道模块的名称。我目前正在做这样的事情: #Some other code ... sys.path.append(os.getcwd()) module = __import__(moduleName) reload(module) sys.path.pop() #Some inspection stuff ... 按照这段代码,我执行一些模块检查 我遇到的问题是,检查正在返回上一次加载具有此名称的模块时的旧成员 澄清一下:我正在从完全不同的路径导入两

我需要在运行时导入一个模块。我事先不知道模块的名称。我目前正在做这样的事情:

#Some other code
...

sys.path.append(os.getcwd())
module = __import__(moduleName)
reload(module)
sys.path.pop()

#Some inspection stuff
...
按照这段代码,我执行一些模块检查

我遇到的问题是,检查正在返回上一次加载具有此名称的模块时的旧成员


澄清一下:我正在从完全不同的路径导入两个完全不同的模块,但它们恰好有相同的名称-因此上面的重新加载(模块)


是否有人知道一种方法可以导入具有相同名称(但内容完全不同)的模块并检查干净的模块对象?

“我正在从完全不同的路径导入两个完全不同的模块,但它们恰好具有相同的名称”:正确完成模块也应具有不同的名称。这就是程序包名称空间的全部要点。请参阅,以了解更多详细信息,其中显示了
导入程序包1.moduleName
导入程序包2.moduleName
,然后,您所引用的
moduleName
。@msw问题是我无法控制模块的名称。它们是由其他人决定的,我必须能够在运行时检查它们。我真正可以使用的唯一信息是当前工作目录和模块名。在我进行模块检查时,也不能保证会出现init.py,因此我不能使用“package.moduleName”。有用于删除模块的代码,其中显示了所涉及的内容。很可能它需要一些工作。我还没有机会尝试。