Skip to content

Distribute PyGMT wheels with libgmt included #1853

Open
@weiji14

Description

@weiji14

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestNew feature wantedhelp wantedHelping hands are appreciatedlongtermLong standing issues that need to be resolved

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions