Python:如果安装了同一个包的多个egg版本,如何具体导入我需要的版本?

Posted

技术标签:

【中文标题】Python:如果安装了同一个包的多个egg版本,如何具体导入我需要的版本?【英文标题】:Python: If there are multiple egg versions of the same package installed, how do I import specifically the version I need? 【发布时间】:2011-07-13 01:13:56 【问题描述】:

例如,FooPackage-1.1 和 FooPackage-1.2 都作为鸡蛋安装在 dist-packages 中。如何导入我需要的?

【问题讨论】:

【参考方案1】:

您可以在导入时使用pkg_resources 指定您的要求:

import pkg_resources
pkg_resources.require('FooPackage==1.2')
import FooPackage

例如:

% easy_install simplejson==2.1.3
% easy_install simplejson==2.1.2

pkg_resources.require('simplejson==2.1.2')
import simplejson
assert simplejson.__version__ == '2.1.2'

【讨论】:

+1,很好的答案:) 除了答案。如果你总是想确保你有正确的版本,试着用你自己的包使用 virtualenv。 对我不起作用;我遇到了版本冲突:pkg_resources.VersionConflict: (SQLAlchemy 1.1.0b1.dev0 (/.virtual/lib/python2.7/site-packages/SQLAlchemy-1.1.0b1.dev0-py2.7-linux-x86_64.egg), Requirement.parse('sqlalchemy==0.8.7'))

以上是关于Python:如果安装了同一个包的多个egg版本,如何具体导入我需要的版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Github 上 Python 包的 egg 名称?

Python 如何跟踪安装了 egg 的模块?

包的安装问题——python

python-第三方包的安装

Spark集群 Python Package管理

python安装依赖包方法