Le 29/04/2020 à 03:18, Eric Snow a écrit :
> My (honest) question is, how many folks using subinterpreters are
> going to want to use numpy (or module X) enough to get mad about it
> before the extension supports subinterpreters? What will user
> expectations be when it comes to subinterpreters?
> We will make the docs as clear as we can, but there are plenty of
> users out there that will not pay enough attention to know that most
> extension modules will not support subinterpreters at first. Is there
> anything we can do to mitigate this impact? How much would it help if
> the ImportError for incompatible modules give a clear (though
> lengthier) explanation of the situation?
For what it's worth, I can give you the feedback of a simple user. It
happens that I tried some time ago to use Numpy in a Flask project which
was deployed with mod_wsgi on an Apache server. Basically, the page was
dynamically generating some plots. And I got weird unreliable behaviour,
which took me some time to debug.
I had to look it up on the internet to figure out the problem was that
Numpy cannot reliably work with mod_wsgi. I originally thought that I
had made a mistake somewhere in my code instead. So, I rewrote the code
to remove the dependency on Numpy. I had used Numpy in the first place,
because, as a physicist, this is what I am used to, but it was clearly
very possible to rewrite this particular code without Numpy.
If your proposal leads to an intelligible actual error, and a clear
warning in the documentation, instead of a silent crash, this sounds
like progress, even for those packages which won't work on
subinterpreters anytime soon...
+10 to this, the mysterious failures of today are way worse than a clear "this module doesn't support this execution environment" ImportError.
I'm not worried at all about someone going and filing an issue in a project saying "please support this execution environment". Someone may eventually come along and decide they want to be the one to make that happen and do the work because they have a reason.