kadas-albireo / kadas-albireo2

KADAS Albireo
GNU General Public License v2.0
67 stars 14 forks source link

unstable Python interpreter version? #21

Closed nilsnolde closed 3 years ago

nilsnolde commented 4 years ago

We're building a routing engine interface for Kadas using Valhalla's Python bindings and the wrapper in Valhalla is boost-python. That library is built against a specific Python version and minor versions matter apparently. At least I couldn't use 3.6 when boost-python was built against 3.8. Probably I'm also missing some of the compilation fu, but:

Now we've seen the current Kadas 2.0 release includes Python 3.9.0b3 and we're wondering if that's intended.. Not only bcs it's "just" a beta, but also bcs it seems to be simply the latest & greatest at the time of the release build. I'd have thought you're pinning the Python version so there's some control, like the osgeo4w builds seem to be doing.

Not entirely sure what the process is to include the Python environment, but is semantic versioning to only allow patch upgrades an option?

nilsnolde commented 4 years ago

Encountered a problem along a similar line:

In the Kadas /bin directory the Python dll is named libpython3.9.dll instead of python39.dll (in official Python release). For Valhalla's bindings that's a problem, boost-python needs python39.dll which it is built against. Confirmed by renaming the dll while QGIS was open, then I could import Valhalla's bindings.

Is it possible for Kadas to stick to the more standard python39.dll?

manisandro commented 3 years ago

As KADAS is compiled using the MinGW toolchain and not MSVC, the naming convention used when building python via GNU Makefiles is used throughout. Briefly looking into it, I don't think it's practicable renaming the library without causing lots of breakage within python itself.

We will be following up with 2.0.2 shortly which will bring python3.9 final (or worst case rc2).

nilsnolde commented 3 years ago

Thanks for the info. Either we'll try to compile valhalla with MinGW or try to switch to pybind11 which shouldn't have the same issues.