Hi,<br><br>I would not agree with using Py2exe, while the idea is nice, we have had many<br>issues with it, basically for 2 reasons :<br><br>- it's dependency analysis, in combination with automatic updates : if your update<br>
uses a part of a package that was not used in the original package, you need to<br> redeploy everything, instead of just the part of your app that you update<br><br>- it changes the 'environment' your app runs in (eg sys.path), while it is possible<br>
to work around it in your app, you need to make sure that none of the packages<br> you use make certain assumption on the environment<br><br>This combination means that in order to properly test your application, you need<br>
to continuously rebuild your app with py2exe, and run it. notice some error, fix it,<br>rebuild, etc. This takes far too much time.<br><br>So what we did was :<br><br>- build a custom python distro with all 'binary' packages included we need that<br>
does not depend on registry settings and does not conflict with potentially other<br> pythons installed on the machine, so we can develop, test and deploy in <br> exactly the same environment<br><br> <a href="http://www.python-camelot.com/cpd.html">http://www.python-camelot.com/cpd.html</a><br>
<br>- build an auto-update & monitoring service around it that was integrated with<br> setuptools and buildbot<br><br> <a href="http://www.conceptive.be/downloads/camelot/doc/sphinx/build/advanced/deployment.html">http://www.conceptive.be/downloads/camelot/doc/sphinx/build/advanced/deployment.html</a><br>
<br>we serve more than 100 sites with this combination. updating the app is just<br>pressing the buildbot button which will run unittests, build a package and push<br>it to the end users.<br><br>Regards,<br><br>Erik<br><br>
<div class="gmail_quote">On Thu, Jun 16, 2011 at 7:13 PM, James Polk <span dir="ltr"><<a href="mailto:jpolk5001@yahoo.com">jpolk5001@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit" valign="top"><br>Apologies if this is too off-topic,....but I'd like to propose a discussion of <br>how-to's and where-fore's regarding distributing python modules to a user-base.<br>
<br>Recently, I've been using Mark Hammond's excellent pywin32 packages,<br>along with NumPy and PyOpenGL,etc. I have a user-base of approx 40 or so,<br>who will need these packages added to their base Python install.<br>
<br>Rather than visit 40 separate desktops, I used "pip" (pip freeze) to get a<br>short list of packages outside the base install, and wrote an app that each<br>user can run to find what's missing, and initiate the appropriate install,etc.<br>
Then I realized that "pip" itself was a 3rd party package!..DOh!<br><br>I can fall back and use "help('modules')" to generate a new list, but it lists<br>*everything* in the install,...usable but not as succinct, for pywin32
for example,<br>it lists about a dozen things with a form of "win32" in them,...and doesn't appear<br>to return the real package name that is associated with the binary installation file.<br><br>Surely these issues are fairly common phenomena in many workplaces,etc...<br>
I'm wondering if anybody out there has any knowledge, tips, or experiences<br>regarding this issue that they can share.<br><br>I've found "moduleFinder", and various ideas about searching "sys.path",<br>
pkgutils, but nothing else that seems like a long term viable and/or elegant solution.<br><br>Thoughts anyone?<br><br>Thanks,<br>-Jim<br><br><br></td></tr></tbody></table><br>_______________________________________________<br>
PyQt mailing list <a href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><br>
<a href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt" target="_blank">http://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><br></blockquote></div><br>