假设我有两个版本的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
中使用钩子?我没弄清楚。
或者有没有删除导入模块的缓存?
答案 0 :(得分:3)
您必须从更高级别导入它:
import version1.my_lib as a
import version2.my_lib as b
还要确保所有文件夹中都有__init__.py
。
答案 1 :(得分:1)