如何同时导入同一个python模块的两个版本?

时间:2015-03-20 06:23:37

标签: python python-import python-module

假设我有两个版本的python包,比如说“lib”。一个位于文件夹~/version1/lib中,另一个位于~/version2/lib中。我试图通过这样做在一个会话中加载两个包:

sys.path.insert(0, '~/version1')
import lib as a

sys.path.insert(0, '~/version2')
import lib as b

但它不起作用,因为缓存,b将与a相同。

反正有吗?也许在sys.meta_path中使用钩子?我没弄清楚。

或者有没有删除导入模块的缓存?

2 个答案:

答案 0 :(得分:3)

您必须从更高级别导入它:

import version1.my_lib as a
import version2.my_lib as b

还要确保所有文件夹中都有__init__.py

答案 1 :(得分:1)