如何同时导入同一个python模块的两个版本?
问题描述
假设我有两个版本的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。
- 激活所需的环境并在那里运行代码。
相关文章