I am confused.   Doesn't this setup a development environment?
I am trying to build an OS package (gentoo) for deployment to a number of hosts.

I want to install my package, with a SqlAlchemy package (0.5.3), and an existing Sqlalchemy package (0.4.4)
and have the packages all get along.

My thoughts were that with the appropriate use of pkg_resources.py, I could use WorkSet, Environment, etc to build a sys.path which would correctly have the newer SqlAlchemy egg file in the path.

I am doing this manually now, but it seems like pkg_resources.py is a more readable, maintainable
method to do the same thing.


What I have working is this:
dino/__init__.py:

....

egg = "SQLAlchemy-0.5.3-py2.4.egg"
for p in sys.path[:]:
    fullname = os.path.join(p, egg)
    if os.path.exists(fullname):
        sys.path.insert(sys.path.index(p), fullname)

...



On Apr 6, 2009, at 7:49 PM, P.J. Eby wrote:

At 05:04 PM 4/6/2009 -0700, Nicholas Veeser wrote:
I am working on a tool we call dino which uses sqlalchemy 0.5.3
Its an update of a previous version (called dino) which uses sqlalchemy 0.4.4.

For reasons I don't have to go into, I would like to have both tools installed on the same host, with almost no changes to the existing tool. Thus both versions of sqlalchemy installed

So my solution seemed to be use pkg_resources and egg's:

- leave sqlalchemy 0.4.4 in:
  /usr/lib64/python2.4/site-packages/sqlalchemy
- build sqlalchemy 0.5.3 as an Egg and install into:
  /usr/lib64/python2.4/site-packages/SQLAlchemy-0.5.3-py2.4.egg
- in the root package of the new code,  specify the correct version
  from pkg_resources import require; require("SQLAlchemy>=0.5.0")

Change this to defining that dependency in its setup.py, and develop using 'setup.py develop'. It will then work correctly.


_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to