【问题标题】:Cannot import numpy after building构建后无法导入 numpy
【发布时间】:2013-11-05 22:07:00
【问题描述】:

我在 Linux (3.11-1-amd64) 上使用 Intel C++ 和 Intel MKL 为 Python 3(64 位)构建 numpy。我从 git 得到了源代码。我还为 Linux 安装了 Intel C++ Composer XE 2013。

这是我所做的:

  1. 在源文件夹中创建了一个site.cfg,包含内容

    [mkl]
    library_dirs = /opt/intel/mkl/composer_xe_2013/lib/intel64
    include_dirs = /opt/intel/mkl/include
    mkl_libs = mkl_rt
    lapack_libs =
    
  2. numpy/distutils/intelccompiler.py中的self.cc_exe改为'icc -O3 -g -fPIC -fp-model strict -fomit-frame-pointer -openmp -xhost'

  3. 添加库路径:export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/opt/intel/lib/intel64:$LD_LIBRARY_PATH

  4. 执行sudo python3 setup.py config --compiler=intel build_clib --compiler=intel build_ext --compiler=intel install

一切都完成后,我启动了python3import numpy,它给出了

    $ python3
    Python 3.3.2+ (default, Sep 18 2013, 11:58:01) 
    [GCC 4.8.1] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import numpy
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python3.3/dist-packages/numpy/__init__.py", line 159, in <module>
        from . import add_newdocs
      File "/usr/local/lib/python3.3/dist-packages/numpy/add_newdocs.py", line 13, in <module>
        from numpy.lib import add_newdoc
      File "/usr/local/lib/python3.3/dist-packages/numpy/lib/__init__.py", line 8, in <module>
        from .type_check import *
      File "/usr/local/lib/python3.3/dist-packages/numpy/lib/type_check.py", line 11, in <module>
        import numpy.core.numeric as _nx
      File "/usr/local/lib/python3.3/dist-packages/numpy/core/__init__.py", line 6, in <module>
        from . import multiarray
    ImportError: libimf.so: cannot open shared object file: No such file or directory

但我检查了/opt/intel/lib/intel64,文件就在那里。我错过了什么吗?谢谢。

【问题讨论】:

    标签: python-3.x numpy build intel-mkl icc


    【解决方案1】:

    这让我在下午的大部分时间都发疯了。显然 scipy 和 sudo 之间有血缘关系;您需要运行该命令没有 sudo。这意味着使用--prefix=/I/Have/write/permission/here 安装或更改 scipy 源目录的权限会在 config-build 部分引发错误。

    【讨论】:

    • 将 scipy 源目录的权限更改为?
    • chmod -R &lt;permissionsettings&gt; &lt;dirname&gt; 您需要读/写权限,但请检查 man chmod 以确保您获得了适合您的角色/系统的正确设置。
    猜你喜欢
    • 2014-02-14
    • 2016-02-22
    • 2014-03-31
    • 2018-04-29
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多