SuperElastix / SimpleElastix

Multi-lingual medical image registration library
http://simpleelastix.github.io
Apache License 2.0
514 stars 148 forks source link

Publish Wheels (to pypi) #187

Open cancan101 opened 6 years ago

cancan101 commented 6 years ago

I suggest publishing the package in Wheel format to pypi to make installing easier (no building required).

Here is another project that had to deal with creating wheels for multiple OS': https://github.com/skvark/opencv-python/

hmaarrfk commented 6 years ago

PyPi, or conda-forge would be nice.

I've interacted with the conda-forge team, and they are quite nice. They would probably also be able to deal with the fact that you would like a naming scheme to target multiple languages.

PertuyF commented 6 years ago

IMO a wheel would be counter-productive as one of the purposes of SimpleElastix is the SWIG binding to multiple languages. A conda package would definitely a better option, and conda-forge the best way to go, but last trial was abandonned some time ago (#34) because of problems with CI of conda-forge recipe (building ITK + ElastiX + SimpleElastix took too long...).

Note that recent interest was shown for this conda-forge recipe, so stay tuned :)

cancan101 commented 6 years ago

Why is wheel counter productive but conda forge makes sense?

PertuyF commented 6 years ago

Because Wheel/PyPi is Python only, and conda is language-agnostic. Meaning that the packaging effort could be done once for all languages with conda (well, at least using a common basis), versus specific packaging for each language if you follow the Wheel/PyPi logic.

hmaarrfk commented 6 years ago

I’ve been trying to build the package with the superbuild for a while now.

Not a fun process, especially because so much of the options are not really documented and not necessary.

For example, it failed as it was trying to overwrite system lua

On Fri, Jun 15, 2018 at 10:17 AM Fabien Pertuy notifications@github.com wrote:

Because Wheel/PyPi is Python only, and conda is language-agnostic. Meaning that the packaging effort could be done once for all languages with conda (well, at least using a common basis), versus specific packaging for each language if you follow the Wheel/PyPi logic.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SuperElastix/SimpleElastix/issues/187#issuecomment-397687152, or mute the thread https://github.com/notifications/unsubscribe-auth/AAFfmJRFdnfFO_Dkbla6mqbPCLJV2t5Kks5t8-wrgaJpZM4TzaWb .

hmaarrfk commented 6 years ago

I've been trying to install SimpleElastix for a a few days now, and I can say that I envision a few issues with unbundeling all the libraries that are bundled within the various projects that simple ITK builds on.

maybe i'm getting a taste of python before wheels and conda, but compiling simple elastix from source is really difficult. is there a recommended distro and version number?

kaspermarstal commented 6 years ago

The master branch is the most stable. However, develop has quite a few fixes for slew of problems, so that might be worth a try if master does not work for you.

hmaarrfk commented 6 years ago

@kaspermarstal, Thanks! I finally got around to compiling some of the prerequisites separately on fedora.

kaspermarstal commented 6 years ago

Great! Let me know if you run into other problems.

constantinpape commented 5 years ago

Could I ask why this issue was closed? As far as I can tell the build problem @hmaarrfk encountered were local. SimpleElastix is still not available via conda or pip, which would make using it a lot easier.

kaspermarstal commented 5 years ago

Indeed. We now have CI build on azure. This can be used to publish pip packages to PyPi but I have not had the time to build this functionality into the system yet. PRs are welcome, otherwise I will do it when I get the time.

matthew-brett commented 5 years ago

Just another plea for wheels (and conda packages I guess, but I do not use conda). They would make a huge difference to accessibility for Python.