numba/npyufunc/omppool.cpp:5:10: fatal error: 'omp.h' file not found
numba/npyufunc/omppool.cpp:5:10: fatal error: 'omp.h' file not found
专家们,
我正在尝试在虚拟 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
error
Cleaning up...
Removing source in /tmp/pip-install-g3ckpog3/numba
Removed build tracker '/tmp/pip-req-tracker-21vj3szg'
Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g3ckpog3/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-lf_sxfnx/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-g3ckpog3/numba/
Exception information:
Traceback (most recent call last):
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 366, in run
use_user_site=options.use_user_site,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/__init__.py", line 49, in install_given_reqs
**kwargs
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/req_install.py", line 791, in install
spinner=spinner,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip._internal.exceptions.InstallationError: Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g3ckpog3/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-lf_sxfnx/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-g3ckpog3/numba/
但是 omp.h
出现在 /usr/local/llvm70/lib/clang/7.0.1/include/omp.h
中。
非常感谢对 troubleshoot/fix 这个问题的任何帮助。我是 运行 FreeBSD 12
和 python3.6
。我已将软链接 llvm7
作为默认值,因为这方面的信息会有所帮助。
我认为,makefile 正在与实际位置不同的位置寻找 omp.h
。如果是这样,有没有办法在 pip
安装期间将路径作为参数传递?
跟进:
按照@hoefling 的建议设置 CPPFLAGS
确实解决了上述问题。然而,接下来的错误如下:
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -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
c++ -shared -lpthread -L/usr/local/lib -fstack-protector -I /usr/local/llvm70/lib/clang/7.0.1/include/ build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/omppool.o build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/gufunc_scheduler.o -L/usr/local/lib -lpython3.6m -o build/lib.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/omppool.so -fopenmp
building 'numba.npyufunc.workqueue' extension
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -fPIC
compile options: '-I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c'
cc: numba/npyufunc/workqueue.c
cc: numba/npyufunc/gufunc_scheduler.cpp
numba/npyufunc/workqueue.c:22:10: fatal error: 'alloca.h' file not found
#include <alloca.h>
^~~~~~~~~~
1 error generated.
numba/npyufunc/workqueue.c:22:10: fatal error: 'alloca.h' file not found
#include <alloca.h>
^~~~~~~~~~
1 error generated.
error: Command "cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -fPIC -I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c numba/npyufunc/workqueue.c -o build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/workqueue.o" failed with exit status 1
error
Cleaning up...
Removing source in /tmp/pip-install-fbsigyza/numba
Removed build tracker '/tmp/pip-req-tracker-0v_6_gji'
Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fbsigyza/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pcr7ap84/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-fbsigyza/numba/
Exception information:
Traceback (most recent call last):
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 366, in run
use_user_site=options.use_user_site,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/__init__.py", line 49, in install_given_reqs
**kwargs
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/req_install.py", line 791, in install
spinner=spinner,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip._internal.exceptions.InstallationError: Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fbsigyza/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pcr7ap84/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-fbsigyza/numba/
我在以下位置有两个 alloca.h
:
/usr/src/contrib/ofed/libibverbs/alloca.h
/usr/src/cddl/compat/opensolaris/include/alloca.h
我不知道应该包括哪一个。
感谢大家的努力。
Linux
omp.h
通常是 gcc
编译器的一部分,例如在 Ubuntu 上安装了
$ sudo apt install libgcc-7-dev
FreeBSD
header 由 devel/openmp
提供。你可以安装它:
$ sudo pkg install devel/openmp
这会将 omp.h
放入 /usr/local/include
,默认包含目录。
自定义包含
如果要在自定义包含目录下附加 header,请使用 CPPFLAGS
/CFLAGS
环境变量:
$ CPPFLAGS="-I/usr/local/llvm70/lib/clang/7.0.1/include/" pip install numba
对于第二个错误,我想 numba
不是在考虑 FreeBSD 的情况下编写的(也不确定 CUDA 和 FreeBSD 是否总体上运行良好)。也许 open an issue? I suppose the patch proposal for numba/npyufunc/workqueue.c
应该是
#include <pthread.h>
#include <unistd.h>
+#if !defined (__FreeBSD__)
#include <alloca.h>
+#endif
#define NUMBA_PTHREAD
#endif
除此之外,尝试包括第二个 (/usr/src/cddl/compat/opensolaris/include/alloca.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
error
Cleaning up...
Removing source in /tmp/pip-install-g3ckpog3/numba
Removed build tracker '/tmp/pip-req-tracker-21vj3szg'
Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g3ckpog3/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-lf_sxfnx/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-g3ckpog3/numba/
Exception information:
Traceback (most recent call last):
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 366, in run
use_user_site=options.use_user_site,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/__init__.py", line 49, in install_given_reqs
**kwargs
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/req_install.py", line 791, in install
spinner=spinner,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip._internal.exceptions.InstallationError: Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g3ckpog3/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-lf_sxfnx/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-g3ckpog3/numba/
但是 omp.h
出现在 /usr/local/llvm70/lib/clang/7.0.1/include/omp.h
中。
非常感谢对 troubleshoot/fix 这个问题的任何帮助。我是 运行 FreeBSD 12
和 python3.6
。我已将软链接 llvm7
作为默认值,因为这方面的信息会有所帮助。
我认为,makefile 正在与实际位置不同的位置寻找 omp.h
。如果是这样,有没有办法在 pip
安装期间将路径作为参数传递?
跟进:
按照@hoefling 的建议设置 CPPFLAGS
确实解决了上述问题。然而,接下来的错误如下:
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -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
c++ -shared -lpthread -L/usr/local/lib -fstack-protector -I /usr/local/llvm70/lib/clang/7.0.1/include/ build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/omppool.o build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/gufunc_scheduler.o -L/usr/local/lib -lpython3.6m -o build/lib.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/omppool.so -fopenmp
building 'numba.npyufunc.workqueue' extension
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -fPIC
compile options: '-I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c'
cc: numba/npyufunc/workqueue.c
cc: numba/npyufunc/gufunc_scheduler.cpp
numba/npyufunc/workqueue.c:22:10: fatal error: 'alloca.h' file not found
#include <alloca.h>
^~~~~~~~~~
1 error generated.
numba/npyufunc/workqueue.c:22:10: fatal error: 'alloca.h' file not found
#include <alloca.h>
^~~~~~~~~~
1 error generated.
error: Command "cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector -fno-strict-aliasing -I /usr/local/llvm70/lib/clang/7.0.1/include/ -fPIC -I/home/russellb/py_devel/pyPlay/include -I/usr/local/include/python3.6m -c numba/npyufunc/workqueue.c -o build/temp.freebsd-12.0-RELEASE-p2-amd64-3.6/numba/npyufunc/workqueue.o" failed with exit status 1
error
Cleaning up...
Removing source in /tmp/pip-install-fbsigyza/numba
Removed build tracker '/tmp/pip-req-tracker-0v_6_gji'
Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fbsigyza/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pcr7ap84/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-fbsigyza/numba/
Exception information:
Traceback (most recent call last):
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 366, in run
use_user_site=options.use_user_site,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/__init__.py", line 49, in install_given_reqs
**kwargs
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/req/req_install.py", line 791, in install
spinner=spinner,
File "/home/russellb/py_devel/pyPlay/lib/python3.6/site-packages/pip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip._internal.exceptions.InstallationError: Command "/home/russellb/py_devel/pyPlay/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fbsigyza/numba/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pcr7ap84/install-record.txt --single-version-externally-managed --compile --install-headers /home/russellb/py_devel/pyPlay/include/site/python3.6/numba" failed with error code 1 in /tmp/pip-install-fbsigyza/numba/
我在以下位置有两个 alloca.h
:
/usr/src/contrib/ofed/libibverbs/alloca.h
/usr/src/cddl/compat/opensolaris/include/alloca.h
我不知道应该包括哪一个。
感谢大家的努力。
Linux
omp.h
通常是 gcc
编译器的一部分,例如在 Ubuntu 上安装了
$ sudo apt install libgcc-7-dev
FreeBSD
header 由 devel/openmp
提供。你可以安装它:
$ sudo pkg install devel/openmp
这会将 omp.h
放入 /usr/local/include
,默认包含目录。
自定义包含
如果要在自定义包含目录下附加 header,请使用 CPPFLAGS
/CFLAGS
环境变量:
$ CPPFLAGS="-I/usr/local/llvm70/lib/clang/7.0.1/include/" pip install numba
对于第二个错误,我想 numba
不是在考虑 FreeBSD 的情况下编写的(也不确定 CUDA 和 FreeBSD 是否总体上运行良好)。也许 open an issue? I suppose the patch proposal for numba/npyufunc/workqueue.c
应该是
#include <pthread.h>
#include <unistd.h>
+#if !defined (__FreeBSD__)
#include <alloca.h>
+#endif
#define NUMBA_PTHREAD
#endif
除此之外,尝试包括第二个 (/usr/src/cddl/compat/opensolaris/include/alloca.h
)。