Tina I wrote: > Hi list, > > Is there a preferred way to distribute programs that depends on third > party modules like PyQt, Beautifulsoup etc? I have used setuptools and > just having the setup script check for the existence of the required > modules. If they're not found I have it exit with a message that it need > this or that installed. > > But this is not very convenient for the end user and I have got a few > complaints about it. Am I missing something in setuptools or is there a > better way to do it (except for bundling the modules in the package > which seem like a rather nasty workaround)? > > Thanks > Tina
What platform are you doing this on? On the Linux platform, "dependency hell" of this sort is pretty much unavoidable, because there are so many different packaging systems (apt, rpm, and so on): it's standard to let the package manager handle these dependencies. And yes, it is frustrating for end users. On Windows and the Mac, bundling all the modules isn't a "nasty workaround"; it's the standard behavior. End users on those platforms expect complete application packages, including all supporting libraries, to be provided by the developers. The standard tools for doing this are py2exe for Windows (http://www.py2exe.org/) and py2app for Mac (http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html). There are other methods for distributing "frozen binaries," including the freeze module that ships with Python itself, cx_freeze, and PyInstaller: these three may work on Linux/Unix as well as Windows (they are not supported on the Mac). But the methods above are generally the ones most widely used. -- Kevin Walzer Code by Kevin http://www.codebykevin.com -- http://mail.python.org/mailman/listinfo/python-list