Tuesday, January 15, 2008

Many versions of one Python package

I had to spend some time today working out how to use pkg_resources correctly. I've got multiple versions of SQLAlchemy, and I expected that this code:
import pkg_resources
pkg_resources.require('SQLAlchemy==0.3.11')
would simply active the correct package and everything would just work.

Not so.

In order to use multiple versions of a package, you must install it with the --multi-version option. Eg, these commands:
easy_install --multi-version SQLAlchemy==0.3.11
easy_install --multi-version SQLAlchemy==0.4.2
will let you use pkg_resources to activate different versions of the SQLAlchemy package. Without the --multi-version argument, pkg_resources.require will only perform a dependency check, rather than check and activate the required version.

No comments:

Popular Posts