<div class="gmail_quote">On Wed, Nov 21, 2012 at 4:21 AM, Philipp Hagemeister <span dir="ltr"><<a href="mailto:phihag@phihag.de" target="_blank">phihag@phihag.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Currently, there are the following methods for installing dependencies:<br>
<br>
· Use the distribution's packaging (ignored here, all further points<br>
refer to <a href="http://setup.py/distutils" target="_blank">setup.py/distutils</a>)<br>
· Install them system-wide (default). This requires superuser rights and<br>
is basically guaranteed to conflict with some other application,<br>
especially if applications are choosy about the versions of Python<br>
packages they like.<br>
· Install them user-wide (--user), with pretty much the same downsides,<br>
plus that the application is now bound to the user installing it.<br>
· Manually invoke distutils with another path (error-prone and<br>
non-standard).<br>
· Give up and use virtualenv. While this works fine, it's a little bit<br>
heavy-handed to modify one's shell just to launch a potentially trivial<br>
application.<br></blockquote><div><br>Or install them all in a single directory, add a __main__.py file to that directory and then just pass that directory name on the command line instead of a script name. The directory will be added as sys.path[0] and the __main__.py file will be executed as the main module (If your additional application dependencies are all pure Python files, you can even zip up that directory and pass that on the command line instead). This approach has been supported since at least Python 2.6, but was missing from the original What's New, and nobody ever goes back to read the "using" documentation on the website because they assume they already know how invoking the interpreter works.<br>
<br>Cheers,<br>Nick.<br><br clear="all"></div></div>-- <br>Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>