Feature: examine plugin dependencies for wheel availability #331
tlambert03
started this conversation in
Ideas
Replies: 1 comment
-
Love this @tlambert03! I think it would be really high value all around! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Related to this string of posts, Robert went through a number of plugins and found that some of them are hard to install, particularly if they depend on packages with c-extensions that don't offer wheels. This is definitely not surprising, but it is probably somewhat predictable, and can (relatively easily) be figured out
Proposal
For each plugin, the hub should download the package on pypi and examine the dependencies, then, for each dependency, determine if a wheel is available on pypi. If not, they should have a notification next to their install button stating something like "warning: this plugin may depend on C-extensions that are not available for your platform. Installation may fail."
for example, for napari-autolign:
egg-info
folder:probreg
there doesn't have a wheel in their files list: https://pypi.org/project/probreg/#filesnow... in many cases, if they are pure python, it will be fine not to have a wheel: pip will be able to create one just fine at install... so what you kinda need to know, in addition to whether it has a wheel, is whether it actually uses C extensions.
In the case of
probreg
, it haspybind11
in it's requirements... which is probably a giveaway that it has a C extension. But, you could also check theirsetup.py
to see if they importsetuptools.Extension
... or if they useext_modules
in their setup() command.Having that will definitely help with the general awareness on the part of end users that don't understand why some napari plugin doesn't work. There is definitely a risk of napari gaining a reputation of not being easy to create plugins for, but at the same time, plugins developers have to be aware that the dependencies they choose will affect whether people can use their plugin or not.
Beta Was this translation helpful? Give feedback.
All reactions