Cygwin: ошибка импорта numpy - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь import numpy в Cygwin.Я получаю следующее сообщение об ошибке:

У меня есть numpy 1.11.2-1, он же пакет python2-numpy: Python scientific computing module, установленный через установщик Cygwin.У меня также есть Python 2.7.14-1, также известный как пакет python2: Python 2 language interpreter, установленный через Cygwin.У меня нет локальной установки Python на моей машине.

$ python
Python 2.7.14 (default, Oct 31 2017, 21:12:13)
[GCC 6.4.0] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/usr/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/lib/python2.7/site-packages/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
ImportError: No such file or directory

cygcheck:

$ cygcheck -c python2-numpy
Cygwin Package Information
Package              Version        Status
python2-numpy        1.11.2-1       OK

Кроме того, я смог import numpy в Cygwin надругой компьютер.

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

Я также отредактировал свою переменную $PATH:

$ echo $PATH
/usr/lib/python2.7/site-packages/numpy/:/usr/lib/python2.7/site-packages/:/usr/bin

Решение:

$ PATH=/usr/lib/lapack:$PATH

1 Ответ

0 голосов
/ 23 мая 2018

Numpy не может загрузить библиотеку BLAS, возможно, поскольку PATH был переопределен, чтобы НЕ включать /usr/lib/lapack, или вы не используете bash или csh.

$ cygcheck -l liblapack0
/etc/profile.d/lapack0.csh
/etc/profile.d/lapack0.sh
/usr/lib/lapack/cygblas-0.dll
/usr/lib/lapack/cyglapack-0.dll

Во избежание коллизии разделяемая библиотека NETLIB BLASнаходится под /usr/lib/lapack, а сценарии в /etc/profile.d/ добавляют этот каталог в PATH

$ cat /etc/profile.d/lapack0.sh
LA_PREFIX=/usr
LA_LIBDIR=${LA_PREFIX}/lib
LA_BINDIR=${LA_LIBDIR}/lapack

# Check if the PATH variable is empty or not


if test -n "${PATH}"; then
  # PATH is not empty

  # Check if path is already in PATH
  if ! /bin/echo ${PATH} | /bin/grep -q "${LA_BINDIR}" ; then
    # Path is not already in PATH, append it to PATH
    export PATH="${PATH}:${LA_BINDIR}"
  fi
else
  # PATH is empty
  export PATH="${LA_BINDIR}"
fi

unset LA_PREFIX
unset LA_LIBDIR
unset LA_BINDIR
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...