opticspy / lightpipes

LightPipes for Python, "Pure Python version"
https://opticspy.github.io/lightpipes/
BSD 3-Clause "New" or "Revised" License
232 stars 54 forks source link

make wheel for mac #22

Closed FredvanGoor closed 7 years ago

FredvanGoor commented 7 years ago

Hi,

I made a wheel for the mac successfully. However the fftw3 library is not installed by the wheel. I had to do: 'brew install fftw'. After that everything worked as it should.

Can we put something in setup.py to install fftw3? Or test it in init.py by something like:

import os.path if not os.path.isfile('/usr/local/lib/libfftw3.a'): print('install fftw by typing in a terminal: $brew install fftw')

Or executing this command in init.py?

Or do something similar as with linux?

FredvanGoor commented 7 years ago

I saw that wheels for the mac has been made. How is that done?

guyskk commented 7 years ago

inv build_all should build wheels contains fftw, try unzip the wheels to see what's wrong.

guyskk commented 7 years ago

https://github.com/opticspy/lightpipes/blob/master/tools/macos/tasks.py#L108

FredvanGoor commented 7 years ago

Problem solved. Did something stupid!

Tested on my mac mini computer. Put all the wheels on PyPi. Fred

guyskk commented 7 years ago

Please upload windows wheels to release @FredvanGoor

FredvanGoor commented 7 years ago

I have changed __init__.py according to your proposal using __all__. You forgot to put brackets in 'locals[name]' It must be:

for name in __all__: locals()[name] = getattr(LP, name)

Not:

for name in __all__: locals[name] = getattr(LP, name)

I tested it and now it works. I hope that the Travis problem is solved now ... NO, while writing this I received another error message from Travis! How to stop this??

I also added new commands to LightPipes.pyx related to Zernike and I put the single-location-version trick in __init__.py.

I will rebuild all the wheels with the new __init__.py and upload them to PyPi and relaese.

Greetings from, Fred.

guyskk commented 7 years ago

@FredvanGoor https://github.com/opticspy/lightpipes/blob/master/tools/linux/tasks.py#L57 need changes. Only Linux wheels are tested in travis-ci currently, tests for Windows is hard to automation, tests for MacOS may be feasible. I will try to make testing wheels for MacOS automated.