<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I am confused. &nbsp;&nbsp;Doesn't this setup a development environment?<div>I am trying to build an OS package (gentoo) for deployment to a number of hosts.</div><div><br></div><div>I want to install my package, with a SqlAlchemy package (0.5.3), and an existing Sqlalchemy package (0.4.4)</div><div><div>and have the packages all get along.</div><div><br></div><div>My thoughts were that with the appropriate use of pkg_resources.py, I could use WorkSet, Environment, etc to&nbsp;</div><div>build a sys.path which would correctly have the newer SqlAlchemy egg file in the path.</div><div><br></div><div>I am doing this manually now, but it seems like pkg_resources.py is a more readable, maintainable&nbsp;</div><div>method to do the same thing.</div><div><br></div><div><br></div><div>What I have working is this:</div><div>dino/__init__.py:</div><div><br></div><div>....</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><font class="Apple-style-span" color="#000000"><br></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><font class="Apple-style-span" color="#000000"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: #000000">egg = </span>"SQLAlchemy-0.5.3-py2.4.egg"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #0000ff">for</span> p <span style="color: #0000ff">in</span> sys.path[:]:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; fullname = os.path.join(p, egg)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; <span style="color: #0000ff">if</span> os.path.exists(fullname):</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; sys.path.insert(sys.path.index(p), fullname)</div></font></div></div><div><br></div><div>...</div><div><br></div><div><br></div><div><br></div><div>On Apr 6, 2009, at 7:49 PM, P.J. Eby wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>At 05:04 PM 4/6/2009 -0700, Nicholas Veeser wrote:<br><blockquote type="cite">I am working on a tool we call dino which uses sqlalchemy 0.5.3<br></blockquote><blockquote type="cite">Its an update of a previous version (called dino) which uses sqlalchemy 0.4.4.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">For reasons I don't have to go into, I would like to have both tools installed on the same host,<br></blockquote><blockquote type="cite">with almost no changes to the existing tool. &nbsp;&nbsp;Thus both versions of sqlalchemy installed<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">So my solution seemed to be use pkg_resources and egg's:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">- leave sqlalchemy 0.4.4 in:<br></blockquote><blockquote type="cite"> &nbsp;&nbsp;/usr/lib64/python2.4/site-packages/sqlalchemy<br></blockquote><blockquote type="cite">- build sqlalchemy 0.5.3 as an Egg and install into:<br></blockquote><blockquote type="cite"> &nbsp;&nbsp;/usr/lib64/python2.4/site-packages/SQLAlchemy-0.5.3-py2.4.egg<br></blockquote><blockquote type="cite">- in the root package of the new code, &nbsp;specify the correct version<br></blockquote><blockquote type="cite"> &nbsp;&nbsp;from pkg_resources import require; require("SQLAlchemy>=0.5.0")<br></blockquote><br>Change this to defining that dependency in its setup.py, and develop using 'setup.py develop'. &nbsp;It will then work correctly.<br><br></div></blockquote></div><br></body></html>