[英]fatal error: numpy/arrayobject.h: No such file or directory #include "numpy/arrayobject.h" in google colab
[英]Include numpy's arrayobject.h into bitbake recipe - how to fix installation order?
我的 python 包依赖于 ac 扩展,而 ac 扩展又使用了 numpy 的arrayobject.h
。 我在没有包的情况下构建了映像并确认此文件存在: /usr/lib/python3.5/site-packages/numpy/core/include
。 我还修补了 distutil 的setup.py
如下:
diff --git a/setup.py b/setup.py
index 99dcc2a..ecb2675 100644
--- a/setup.py
+++ b/setup.py
@@ -11,8 +11,12 @@ building_wheel = bool(sys.argv[1].strip() == 'bdist_wheel')
def get_numpy_include():
- import numpy
- return numpy.get_include()
+ try:
+ import numpy
+ return numpy.get_include()
+
+ except ImportError:
+ return '/usr/lib/python3.5/site-packages/numpy/core/include'
def get_build_include(lib_name):
@@ -106,6 +110,7 @@ setup(
name='ringnes.ringbuffer_base',
sources=sources,
libraries=clibraries,
+ include_dirs=[get_numpy_include()],
define_macros=[(sensor_type, 0)]),
Extension(
name='ringnes.mseed_ext',
因此,该目录是硬编码的,但我必须捕获导入异常这一事实表明,numpy 尚不可用,因此也缺少arrayobject.h
。
所以问题是:在 bb 在这个食谱中起作用之前,我如何确保 numpy 存在?
这是(重要的部分)食谱。 注意DEPENDS
(认为DEPENDS
足够了):
inherit setuptools3
# Experimenting with CFLAGS
# TARGET_CFLAGS_append = " -I/usr/lib/python3.5/site-packages/numpy/core/include"
LAYERDEPENDS += " \
meta-openembedded \
meta-python \
"
DEPENDS += " \
python3-numpy \
"
RDEPENDS_${PN} += " \
python3-numpy \
python3-scipy \
python3-cryptography \
python3-smbus \
python3-psutil \
python3-hbmqtt \
"
RRECOMMENDS_${PN} += " \
python3-wifi \
"
简单的答案是指定对本机(目标)numpy 的依赖:
DEPENDS += " \
python3-numpy-native \
"
我还没有确认一切都构建到最后,但至少arrayobject.h
现在似乎可用。
编辑:现在一切似乎都正常。 添加python3-numpy-native
也使 numpy 的补丁过时了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.