Невозможно импортировать numpy в Python 3.7 или Python 3.8 - Ubuntu 18.04 - PullRequest
0 голосов
/ 24 марта 2020

Я управляю группой пользователей, поэтому пытаюсь выяснить, как я могу установить numpy, чтобы все они могли использовать, не заставляя всех устанавливать пакет самостоятельно.

У меня есть Python 2.7 .17 и Python 3.6.9 (устанавливается по умолчанию через Ubuntu 18.04). Кроме того, я установил Python 3.7.5, Python 3.8.0 и numpy, используя следующее.

sudo apt install python3.7
sudo apt install python3.8
sudo apt install python3-numpy

Если я запускаю python или python3 или python3.6 который (вызывает python 2.7.17 или python 3.6.9), я могу просто выполнить следующую команду.

import numpy

Однако, если я попытаюсь запустить выше после запуска python3.7 или python3.8 Я получаю следующее сообщение об ошибке:

ImportError: cannot import name 'multiarray' from 'numpy.core' (/usr/lib/python3/dist-packages/numpy/core/__init__.py)

РЕДАКТИРОВАТЬ: Полная ошибка

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 16, in <module>
    from . import multiarray
ImportError: cannot import name 'multiarray' from 'numpy.core' (/usr/lib/python3/dist-packages/numpy/core/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/usr/lib/python3/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python3/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/lib/python3/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 26, in <module>
    raise ImportError(msg)
ImportError: 
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

Original error was: cannot import name 'multiarray' from 'numpy.core' (/usr/lib/python3/dist-packages/numpy/core/__init__.py)

При установке numpy он устанавливается на /usr/lib/python3/dist-packages, что должно быть хорошо, так как он на sys.path() для всех версий Python.

Может не работать, потому что версия numpy, полученная с помощью apt, предназначена только для Python 3.6 +0,9? Если это так, как мне установить numpy для всех пользователей для ВСЕХ версий Python?

РЕДАКТИРОВАТЬ 2: Содержимое /usr/lib/python3/dist-packages/numpy/core

total 3672
-rw-r--r-- 1 root root   29215 Sep 29  2017 arrayprint.py
-rw-r--r-- 1 root root     413 Sep 17  2017 cversions.py
-rw-r--r-- 1 root root   67393 Sep 17  2017 defchararray.py
-rw-r--r-- 1 root root    6208 Dec  5  2017 _dummy.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   35533 Sep 29  2017 einsumfunc.py
-rw-r--r-- 1 root root   98980 Sep 29  2017 fromnumeric.py
-rw-r--r-- 1 root root   12104 Sep 29  2017 function_base.py
-rw-r--r-- 1 root root    7331 Sep 29  2017 generate_numpy_api.py
-rw-r--r-- 1 root root   18422 Sep 17  2017 getlimits.py
drwxr-xr-x 3 root root    4096 Mar 24 13:20 include
-rw-r--r-- 1 root root    4692 Sep 17  2017 info.py
-rw-r--r-- 1 root root    3039 Sep 29  2017 __init__.py
-rw-r--r-- 1 root root   21375 Sep 29  2017 _internal.py
drwxr-xr-x 3 root root    4096 Mar 24 13:20 lib
-rw-r--r-- 1 root root   10789 Sep 17  2017 machar.py
-rw-r--r-- 1 root root   11432 Sep 17  2017 memmap.py
-rw-r--r-- 1 root root    4704 Sep 17  2017 _methods.py
-rw-r--r-- 1 root root 1582528 Dec  5  2017 multiarray.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   48624 Dec  5  2017 multiarray_tests.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   91642 Sep 29  2017 numeric.py
-rw-r--r-- 1 root root   28786 Sep 29  2017 numerictypes.py
-rw-r--r-- 1 root root   10384 Dec  5  2017 operand_flag_tests.cpython-36m-x86_64-linux-gnu.so
drwxr-xr-x 2 root root    4096 Mar 24 13:20 __pycache__
-rw-r--r-- 1 root root   29418 Sep 29  2017 records.py
-rw-r--r-- 1 root root   15345 Dec  5  2017 setup_common.py
-rw-r--r-- 1 root root   40704 Sep 29  2017 setup.py
-rw-r--r-- 1 root root   19081 Sep 29  2017 shape_base.py
-rw-r--r-- 1 root root   10408 Dec  5  2017 struct_ufunc_test.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   44312 Dec  5  2017 test_rational.cpython-36m-x86_64-linux-gnu.so
drwxr-xr-x 4 root root    4096 Mar 24 13:20 tests
-rw-r--r-- 1 root root 1415520 Dec  5  2017 umath.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   18856 Dec  5  2017 umath_tests.cpython-36m-x86_64-linux-gnu.so

Результаты locate multiarray.py

/usr/lib/python2.7/dist-packages/numpy/core/tests/test_multiarray.py
/usr/lib/python2.7/dist-packages/numpy/core/tests/test_multiarray.pyc
/usr/lib/python2.7/dist-packages/numpy/matrixlib/tests/test_multiarray.py
/usr/lib/python2.7/dist-packages/numpy/matrixlib/tests/test_multiarray.pyc
/usr/lib/python3/dist-packages/numpy/core/tests/test_multiarray.py
/usr/lib/python3/dist-packages/numpy/matrixlib/tests/test_multiarray.py
...