mikolmogorov / Flye

De novo assembler for single molecule sequencing reads using repeat graphs
Other
790 stars 168 forks source link

Support building wheel #190

Closed ccoulombe closed 4 years ago

ccoulombe commented 4 years ago

Hello,

setup.py does install but fails when building a wheel.

Command to reproduce (with wheel installed) : (env) python setup.py bdist_wheel or (env) pip wheel .

ccoulombe commented 4 years ago

Any plans to support this soon? It would make it easier to distribute Flye (e.g. PyPI, supercomputers wheelhouses, etc.)

mikolmogorov commented 4 years ago

Hi,

I looked into this - it seems that the issue is that Flye is using a workaround to include C++ binaries into an .egg package (via "scripts" option in setup.py). Looks like when building wheel, this scripts directory is not created (because there are no actual python scripts), which is causing the error.

Theoretically, I could push this workaround further, by tricking setuptools to create scripts directory. But this still be a workaround, and eventually will break. Are you aware of any official documentation wrt to including C++ binaries into a python package?

Note that these are NOT "Python C extensions", but regular self-contained binaries. I am against converting them into library extensions because of various issue with portability and distribution I've experienced in the past.

Mikhail

mikolmogorov commented 4 years ago

Ok, since there is no further input, I am marking this as "wontfix". Let me know if you have any ideas how to implement it the right way without significant changes in the project organization.

zymergen-luke commented 2 years ago

I have a potential fix for this