猿问

numba/npyufunc/omppool.cpp:5:10: 致命错误:找不到“omp.h”文件

我正在尝试在虚拟 python 环境中使用 pip 安装 numba。我遇到以下错误:


错误日志:


cc: numba/cuda/cudadrv/_extras.c

    cc -shared -lpthread -L/usr/local/lib -fstack-protector build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/cuda/cudadrv/_extras.o -L/usr/local/lib -lpython3.6m -o build/lib.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/cuda/cudadrv/_extras.so

    building 'numba.npyufunc.omppool' extension

    C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC


    compile options: '-I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c'

    extra options: '-fopenmp -std=c++11'

    cc: numba/npyufunc/omppool.cpp

    cc: numba/npyufunc/gufunc_scheduler.cpp

    numba/npyufunc/omppool.cpp:5:10: fatal error: 'omp.h' file not found

    #include <omp.h>

             ^~~~~~~

    1 error generated.

    numba/npyufunc/omppool.cpp:5:10: fatal error: 'omp.h' file not found

    #include <omp.h>

             ^~~~~~~

    1 error generated.

    error: Command "cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c numba/npyufunc/omppool.cpp -o build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/omppool.o -fopenmp -std=c++11" failed with exit status 1


非常感谢您对解决/解决此问题的任何帮助。我正在跑步FreeBSD 12和python3.6。我已将软链接llvm7作为默认设置,因为该信息会有所帮助。


我认为,makefile 正在寻找omp.h与实际位置不同的位置。如果是这样,有没有办法在pip安装过程中将路径作为参数传递?


犯罪嫌疑人X
浏览 215回答 1
1回答

一只名叫tom的猫

Linuxomp.h通常是gcc编译器的一部分,例如在 Ubuntu 上安装它$ sudo apt install libgcc-7-devFreeBSD标头由 提供devel/openmp。您可以使用以下命令安装它:$ sudo pkg install devel/openmp这将omp.h放入/usr/local/include,它应该在默认包含目录下。自定义包括如果要在自定义包含目录下附加标题,请使用CPPFLAGS/CFLAGS环境变量:$ CPPFLAGS="-I/usr/local/llvm70/lib/clang/7.0.1/include/" pip install numba对于第二个错误,我想numba不是用 FreeBSD 编写的(也不确定 CUDA 和 FreeBSD 是否总体上玩得很好)。也许打开一个问题?我想补丁建议numba/npyufunc/workqueue.c应该是&nbsp;#include <pthread.h>&nbsp;#include <unistd.h>+#if !defined (__FreeBSD__)&nbsp;#include <alloca.h>+#endif&nbsp;#define NUMBA_PTHREAD&nbsp;#endif除此之外,尝试包括第二个 ( /usr/src/cddl/compat/opensolaris/include/alloca.h)。
随时随地看视频慕课网APP

相关分类

Python
我要回答