Embedding python (and added goodies) in a fundamentally relocatable product distribution
I work for a company that ships software products containing ready-to-run python The products contain both a command line python and embedded python used to script complex applications. Our distributions are *fundamentally relocatable*. What I mean by this, is that our install is nothing but an archive extraction. Location information is not modified or patched in anywhere in the tree of files representing our distribution. Our products can be extracted on an NFS or SMB share - mounted differently on various client systems - and run fine everywhere. To distinguish our approach from static/install-time relocation - I sometimes call it a just in time install. We would like to improve the capability of our installed python, to include some of the typical scientific and engineering extensions (numpy, scipy, and so on). Growing weary (and wary) of doing all of our own builds for various third party software - I've begun looking at alternatives that collect a compatible set of python and extensions together. The most capable and easy to get collection of python - with scientific support - appears to be Conda. It's extremely good at pulling together a collection of extensions that play nicely together - and has an appropriately open license. Unfortunately, a Conda distribution must be statically located before use. Other distribution methods I've seen are similarly limited. The Conda distribution is also a bit of a space hog - using hard links that would expand to duplicate copies of files if contained within a distribution such as ours. I can imagine ways to patch up the Conda distribution with symbolic links and smarter start scripts - but I was wondering if any fundamentally better stuff was out there. Any ideas? -jrm James Mason Exa Corp Burlington, MA
We are doing similar things at Infinidat.You should check infi.recipe.application_packager at github.com/Infinidat for building and shipping standalone Python projects, either in platform-specific packages (rpm, MSI, etc) or as standalone executables.
—
Sent from Mailbox
On Thu, May 28, 2015 at 12:10 AM, jrm
I work for a company that ships software products containing ready-to-run python The products contain both a command line python and embedded python used to script complex applications. Our distributions are *fundamentally relocatable*. What I mean by this, is that our install is nothing but an archive extraction. Location information is not modified or patched in anywhere in the tree of files representing our distribution. Our products can be extracted on an NFS or SMB share - mounted differently on various client systems - and run fine everywhere. To distinguish our approach from static/install-time relocation - I sometimes call it a just in time install. We would like to improve the capability of our installed python, to include some of the typical scientific and engineering extensions (numpy, scipy, and so on). Growing weary (and wary) of doing all of our own builds for various third party software - I've begun looking at alternatives that collect a compatible set of python and extensions together. The most capable and easy to get collection of python - with scientific support - appears to be Conda. It's extremely good at pulling together a collection of extensions that play nicely together - and has an appropriately open license. Unfortunately, a Conda distribution must be statically located before use. Other distribution methods I've seen are similarly limited. The Conda distribution is also a bit of a space hog - using hard links that would expand to duplicate copies of files if contained within a distribution such as ours. I can imagine ways to patch up the Conda distribution with symbolic links and smarter start scripts - but I was wondering if any fundamentally better stuff was out there. Any ideas? -jrm James Mason Exa Corp Burlington, MA
participants (2)
-
Guy Rozendorn
-
jrm