I have the task of packaging and shipping a commercial application bundle, which will include:
This will vary depending on your target market. In specialized niche industries there is more variety in how stuff is distributed. In heavily commoditized areas I would expect native OS package (at least if I were a customer). I tend to take the quality of the deployment package as indicative of the quality of the software in general. I associate native OS packages as higher quality than other formats largely because the dependency information can be complete. This makes it easier to do some compliance testing and change management.
Native OS Packages
Relocation and Config Requirements
.../libexec
. This prevents it from accidentally being called./usr/local/libexec/_python
.py
for the bins to make them easily relocatable. You can change the Magic Cookie at install time to whatever the location your Python was installed in via an install script. The only code you need in the bin is a line that calls into your lib which is a pyc./usr/local/lib/app_python/site_package/...
and you won't need to use PYTHONPATH
.Shared Libraries
rpath
entries from the libs as this can mess with their ability to be relocated.