代码之家  ›  专栏  ›  技术社区  ›  user2205916

cygwin:导入numpy错误

  •  1
  • user2205916  · 技术社区  · 6 年前

    我正在努力 import numpy 在塞格温。我收到以下错误消息。

    我有 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
    

    而且,我能够 导入numpy 在里面 Cygwin 在另一台计算机上。

    关于这一点,似乎有很多帖子,但都缺乏适合我的解决方案。我尝试根据重新启动计算机 Not able to import numpy in 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 回复  |  直到 6 年前
        1
  •  1
  •   matzeri    6 年前

    numpy无法加载blas库,可能是因为路径被重新定义为不包含。 /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/ 将该目录添加到路径

    $ 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