python:运行时使用pkg_资源的多个库版本(pkg_resources.VersionConflict error)

python:运行时使用pkg_资源的多个库版本(pkg_resources.VersionConflict error),python,require,easy-install,pkg-resources,Python,Require,Easy Install,Pkg Resources,我试图在同一个python脚本中使用同一个库的两个不同版本(随easy_install—multi-version一起安装)。下面的代码说明了总体思路 如果我单独调用每个版本,一切都很好。如果我想先调用一个版本,然后调用另一个版本,我会得到一个VersionConflict错误 在加载另一个发行版之前,必须有一种方法从工作集中“卸载”上一个发行版,但我似乎总是在阅读该发行版时迷路 有人能告诉我怎么做吗?非常感谢 #!/usr/local/bin/python2.7 # -*- coding: u

我试图在同一个python脚本中使用同一个库的两个不同版本(随easy_install—multi-version一起安装)。下面的代码说明了总体思路

如果我单独调用每个版本,一切都很好。如果我想先调用一个版本,然后调用另一个版本,我会得到一个VersionConflict错误

在加载另一个发行版之前,必须有一种方法从工作集中“卸载”上一个发行版,但我似乎总是在阅读该发行版时迷路

有人能告诉我怎么做吗?非常感谢

#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-
def test1():
    import pkg_resources
    pkg_resources.require('obspy.core==0.6.2')
    import obspy.core
    try:
        print obspy.core.__version__
    except:
       print "Can not read obspy.core version"
def test2():
    import pkg_resources
    pkg_resources.require('obspy.core==0.4.8')
    import obspy.core
    try:
        print obspy.core.__version__
    except:
        print "Can not read obspy.core version"
if __name__ == '__main__':
    test1()
    test2()

在模块已导入的情况下,您是否尝试过使用
重新加载(模块)


与重新加载(pkg_资源)一样?是的,我还是有版本冲突。我做错了吗?我也应该重新加载obspy吗?按哪个顺序?不,谢谢你的建议,Stefan,但它仍然不起作用。如果你把不同的导入放在不同的模块中会怎么样?使用sys.getrefcount(pkg_参考资料),您可以查看是否还有任何东西在使用该对象,如果是这样,则重载将保留一些“旧”内容并导致问题即使将每个导入放在其自己的模块中,我仍然会收到相同的错误。我不太明白
sys.getrefcount(pkg\u资源)
显示的内容:导入pkg\u资源时,计数是3,导入obspy后,计数仍然是3,如果重新加载pkg\u资源,计数是7。似乎不仅没有卸载任何内容,而且它本身“在顶部”加载。尽管如此,还是要感谢你的帮助,没有它我将一事无成;)