seung-lab / euclidean-distance-transform-3d

Euclidean distance & signed distance transform for multi-label 3D anisotropic images using marching parabolas.
GNU General Public License v3.0
234 stars 37 forks source link

Binaries for Windows #16

Closed uschmidt83 closed 5 years ago

uschmidt83 commented 5 years ago

First of all, thank you for providing this useful tool!

I see that you're providing pre-compiled binaries (wheels) on PyPI for macOS and Linux. Do you plan to also do that for Windows?

I'm currently also investigating how to provide wheels for my Python package and found cibuildwheel, which looks promising.

PS: I noticed that your setup.py includes compiler flags that do not work with the C++ compiler on Windows. Fortunately, I found that they're simply ignored and the compilation still succeeds.

Best, Uwe

william-silversmith commented 5 years ago

Hi Uwe,

It's certainly conceivable to produce binaries but I haven't ever done any windows programming. I recently got a Windows VM and MSVC but I'm still learning how to use it on and off. It might be a bit.

Sorry about that.

Will

On Wed, Jul 3, 2019, 8:38 AM Uwe Schmidt notifications@github.com wrote:

First of all, thank you for providing this useful tool!

I see that you're providing pre-compiled binaries (wheels https://pypi.org/project/edt/#files) on PyPI for macOS and Linux. Do you plan to also do that for Windows?

I'm currently also investigating how to provide wheels for my Python package and found cibuildwheel https://github.com/joerick/cibuildwheel, which looks promising.

PS: I noticed that your setup.py https://github.com/seung-lab/euclidean-distance-transform-3d/blob/master/python/setup.py includes compiler flags that do not work with the C++ compiler on Windows. Fortunately, I found that they're simply ignored and the compilation still succeeds.

Best, Uwe

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/seung-lab/euclidean-distance-transform-3d/issues/16?email_source=notifications&email_token=AATGQSNG5J6DHKKBBBCY2VDP5SMTJA5CNFSM4H5FLWL2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G5D6B4A, or mute the thread https://github.com/notifications/unsubscribe-auth/AATGQSOHDLIERW2NBR2QLQDP5SMTJANCNFSM4H5FLWLQ .

uschmidt83 commented 5 years ago

Hi Will,

thanks for the quick reply! I'm also a novice when it comes to doing development on Windows. But the good thing is that your code apparently just compiles fine on Windows already. I've successfully done a quick test, but don't know if all the functionality works as expected though.

How do you currently build the wheels that you distribute via PyPI?

Best, Uwe

william-silversmith commented 5 years ago

I think FAANG developers would make fun of me, but currently it's completely manual. I build Linux binaries in a docker with g++ on either an Ubuntu or Mac OS machine. For Mac binaries, the OS is proprietary so I build on whatever OS version I have using clang on the command line.

On Wed, Jul 3, 2019, 10:22 AM Uwe Schmidt notifications@github.com wrote:

Hi Will,

thanks for the quick reply! I'm also a novice when it comes to doing development on Windows. But the good thing is that your code apparently just compiles fine on Windows already. I've successfully done a quick test, but don't know if all the functionality works as expected though.

How do you currently build the wheels that you distribute via PyPI?

Best, Uwe

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/seung-lab/euclidean-distance-transform-3d/issues/16?email_source=notifications&email_token=AATGQSIYPQBDK4EIV55GM4TP5SY35A5CNFSM4H5FLWL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZETR7Y#issuecomment-508115199, or mute the thread https://github.com/notifications/unsubscribe-auth/AATGQSMVWIDNRIJ2GLXF3ITP5SY35ANCNFSM4H5FLWLQ .

uschmidt83 commented 5 years ago

I think FAANG developers would make fun of me, but currently it's completely manual.

That's completely reasonable, especially if you don't have to do it often. Setting up such DevOps stuff also takes time.

william-silversmith commented 5 years ago

Oh hey look at that. I was able to use powershell to build and upload a 64-bit binary for python37. Give it a looksie.

william-silversmith commented 5 years ago

Ok I also have Python3.6 uploaded as well. I had some problems with 3.5 (missing some component in the linker unrelated to this library). Let me know how they are. I am a little concerned about the optimization level. The automated tests are running slowly, however, it's also in a VM.

uschmidt83 commented 5 years ago

Thank you, Will!

Unfortunately, I wasn't yet able to gain access to a Windows machine to test this. I'll be away for the next two weeks and hope to resume my work on this then.

william-silversmith commented 5 years ago

I'm going to close this issue assuming that the Windows binaries are working in a few days unless there are objections. Happy computing!

uschmidt83 commented 5 years ago

The Windows wheels for Python 3.6 and 3.7 do indeed work, see my tests here and here.

william-silversmith commented 5 years ago

Thank you for the tests! Glad it's working :)