Description
Description of the desired feature
The core idea is to enable something like pip install pygmt-gmt6.4
, where the GMT C binary is bundled directly with PyGMT. I.e. users don't have to install GMT first, and then install PyGMT, solving the issue of "Why can't I just pip install pygmt
?".
distribute libgmt with PyPI wheels in the future (which would be awesome but difficult to achieve).
Originally posted by @leouieda in #1848 (comment)
I don't know how this fully works, but I know that there are Python packages like scipy
and cupy
which have C libraries bundled inside them. In the case of scipy, they've recently moved to this thing called Meson builds (see https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson), and I'm wondering if there's something in there we can learn from
For cupy
, if you look on https://pypi.org/project/cupy, there are several sub-packages like cupy-cuda114
, cupy-cuda115
, etc, whereby each cupy
version is tied to a particular CUDA version binary. Again, not sure how this works but we might be able to have a similar setup where there's a plain pygmt
source/wheel with no GMT, and a pygmt-gmt64
, pygmt-gmt65
, etc.
Are you willing to help implement and maintain this feature? Long term issue (>2023) that will need lots of teamwork.