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

2022-03-31 00:00:00 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中使用钩子?我没弄明白。

还是一定要删除导入模块的缓存?


解决方案

  • 可以考虑使用python virtual environment。
  • 激活所需的环境并在那里运行代码。

相关文章