python-scikit-learn can't be imported "module compiled against API version 0x10 but this version of numpy is 0xf"

  • Done
  • quality assurance status badge
Details
2 participants
  • Edouard Klein
  • Edouard Klein
Owner
unassigned
Submitted by
Edouard Klein
Severity
normal
E
E
Edouard Klein wrote on 5 Jun 2023 18:50
(name . bug-guix)(address . bug-guix@gnu.org)
87cz29ua0s.fsf@rdklein.fr
Dear Guix maintainers,

If I run:
guix shell python-scikit-learn
and in it, run:
python3 -c "from sklearn.feature_extraction.text import CountVectorizer"
I get:
RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xf . Check the section C-API incompatibility at the Troubleshooting ImportError section at https://numpy.org/devdocs/user/troubleshooting-importerror.html#c-api-incompatibilityfor indications on how to solve this problem .
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/sklearn/__init__.py", line 82, in <module>
from .base import clone
File "/usr/lib/python3.10/site-packages/sklearn/base.py", line 17, in <module>
from .utils import _IS_32BIT
File "/usr/lib/python3.10/site-packages/sklearn/utils/__init__.py", line 17, in <module>
from scipy.sparse import issparse
File "/usr/lib/python3.10/site-packages/scipy/sparse/__init__.py", line 267, in <module>
from ._csr import *
File "/usr/lib/python3.10/site-packages/scipy/sparse/_csr.py", line 10, in <module>
from ._sparsetools import (csr_tocsc, csr_tobsr, csr_count_blocks,
ImportError: numpy.core.multiarray failed to import

I can't look into it right now, but I'm available to provide any
necessary information.

Cheers,

Edouard.
E
E
Edouard Klein wrote on 14 Jun 2023 08:38
Re: bug#63912: Acknowledgement (python-scikit-learn can't be imported "module compiled against API version 0x10 but this version of numpy is 0xf")
(address . 63912-done@debbugs.gnu.org)
87ilbqy27p.fsf@rdklein.fr
I found the cause:

.local/lib/python3.10/site-packages/ is part of the interpreter's load
path, and so an old version of numpy was imported in priority over
guix's.

I don't know if this is by design, but if so, it means that any
pip --user installed package will overshadow any guix install package,
even when giving --pure to guix shell. It may not be what we want.

What made me find this is that sklearn worked when in a container, but
not in a shell, that meant that something from the local system was
leaking into the shell.



help-debbugs@gnu.org (GNU bug Tracking System) writes:

Toggle quote (16 lines)
> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
> bug-guix@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 63912@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 63912@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63912
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch