Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #62241
| From | Thomas Heller <theller@ctypes.org> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Packaging a private project |
| Date | 2013-12-17 22:24 +0100 |
| Message-ID | <bhbti1Fa197U1@mid.individual.net> (permalink) |
| References | <mailman.4201.1387192698.18130.python-list@python.org> |
Am 16.12.2013 12:18, schrieb Nicholas Cole: > Dear List, > > What is the best way to distribute a private, pure python, Python 3 > project that needs several modules (some available on pypi but some > private and used by several separate projects) in order to run? > > I'd like to include everything that my project needs to run in a > single package. The best way to do this seems to be to be to create > symlinks to the source code of the "3rd party" modules I need and > create a setup.py file that includes them in its "packages" list. Is > this what other people do? > > But even more ideally, I'd like to package my script and its > dependencies in a single zip file that can be executed by python > directly. I see several declarations that this is possible online, > but I can't find a simple recipe for converting a script and its > dependencies into this kind of distribution. Could someone give me a > pointer to a description of "the right way to do it". > > I'm making life harder for myself by using python 3 (PyInstaller still > only supports Python 2) and by the fact that I can't release some of > the necessary code publicly. Releasing modules and scripts on pypi > has become very easy -- I'd forgotten how hard packaging private code > is! Well, pyzzer comes to mind (you find it on pypi). It creates an executable zip-archive containing all the stuff that you need (at least the pure python modules). The problem remains: how to find all the modules and packages that need to be included? Python's modulefinder can do this for you. If you want to live on the cutting edge you could try the new one that I've written for Python3. It currently lives in http://code.google.com/p/ctypes-stuff/source/browse/trunk/mf/py2exe/mf3.py It has several advantages against the standard library's modulefinder; for example it finds and is able to extract the bytecode even from zipped eggs. For examples how it can be used, you could peek into the runtime.py module in the same directory, method build_library of class Runtime. I guess for an experienced developer it takes around one day to take these pieces and build a script that scans a python script, finds all the needed modules and packages, and uses pyzzer to build an executable archive from it. Thomas
Back to comp.lang.python | Previous | Next — Previous in thread | Find similar | Unroll thread
Packaging a private project Nicholas Cole <nicholas.cole@gmail.com> - 2013-12-16 11:18 +0000 Re: Packaging a private project Thomas Heller <theller@ctypes.org> - 2013-12-17 22:24 +0100
csiph-web