<story><title>Python Wheels Crosses 90%</title><url>https://pythonwheels.com/</url></story><parent_chain></parent_chain><comment><author>haberman</author><text>Today I spent at least an hour fighting with Python packaging. The more I think about it, the more I feel that self-contained static binaries are the way to go. Trying to load source files from all over the filesystem at runtime is hell. Or at least it&amp;#x27;s hell to debug when it goes wrong.&lt;p&gt;I would love to see a move towards &amp;quot;static&amp;quot; binaries that package everything together into a single, self-contained unit.</text></comment>
<story><title>Python Wheels Crosses 90%</title><url>https://pythonwheels.com/</url></story><parent_chain></parent_chain><comment><author>u801e</author><text>One thing I found when converting our python application packaging from RPM to wheels is that wheels don&amp;#x27;t properly handle the data_files parameter in the setup call.  That is, it places files under the python library directory instead of in the absolute path as specified.  This means that sample configuration files and init scripts end up in the wrong place on the file system.  In order to get around this, we had to upload the source distribution to our devpi instance and run pip install with the --no-binary option which would then place those files in the correct directories.&lt;p&gt;The other issue is that there&amp;#x27;s no equivalent of the %(config) RPM spec directive to prevent the config file from being overwritten if it already exists on the file system.&lt;p&gt;So, for libraries, wheels are a good cross-platform packaging solution, but not so much for applications that require configuration files and init scripts.</text></comment>