我正在尝试为scikit-learn创建一个yocto recipe包。这取决于scipy包。我能够使用:https://github.com/gpanders/meta-scipy成功地构建scipy包。
当我运行bitbake python3-scikit-learn时,我得到以下错误:ModuleNotFoundError: No module named 'scipy'
我按照下面的顺序执行这些命令。
一旦我克隆/复制了scipy配方和meta-scipy中列出的补丁,我就可以运行bitbake python3-scipy了,构建成功了。
然后,我创建了一个名为python3-scikit-learn_0.23.2.bb的recipe文件,其内容如下所示。
PYPI_PACKAGE = "scikit-learn"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=40ee42dc5a49f1617c5c78f16c50e065"
SRC_URI[sha256sum] = "20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480"
inherit pypi setuptools3
#DEPENDS = "${PYTHON_PN}-numpy-native ${PYTHON_PN}-numpy ${PYTHON_PN}-scipy ${PYTHON_PN}-joblib ${PYTHON_PN}"
DEPENDS = "${PYTHON_PN}-numpy-native ${PYTHON_PN}-numpy ${PYTHON_PN}-scipy ${PYTHON_PN}"
RDEPENDS_${PN} += "${PYTHON_PN}-numpy ${PYTHON_PN}-scipy"当我运行bitbake python3-scikit-learn时,我得到了这个ModuleNotFoundError: No module named 'scipy'
检查了devshell python3正在查找的路径(poky/build/tmp-glibc/work/aarch64-oe-linux/python3-scikit-learn/0.23.2-r0/recipe-sysroot-native/usr/lib/python3.8/site-packages),我只能在那里看到numpy包,但scipy包不在那里。
ls命令输出:
numpy
numpy-1.17.4-py3.8.egg-info
pkg_resources
__pycache__
README.txt
setuptools
setuptools-45.2.0-py3.8.egg-info谁能告诉我如何包含python3-scipy包,以便它将被包含/复制到devshell。或者我需要更新/修复其他东西。
感谢任何关于这方面的指导。
发布于 2021-01-13 03:31:33
您还可以运行:
bitbake -c devshell python3-scipy并查看食谱将所有内容打包到rootfs中的确切位置。缺省情况下,根文件系统是:https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/bitbake.conf#n457
IMAGE_ROOTFS = "${WORKDIR}/rootfs"因此,看看python3-scipy在${WORKDIR}/rootfs中放入了什么(${WORKDIR}是在执行devshell之后被抛入的位置,所以只需从那里cd到rootfs )。
如果python3-scipy将其放入不在路径中的某个位置,则可以将其添加到路径中。
您可以看到python3-scipy是如何查找库的:https://github.com/gpanders/meta-scipy/blob/1c07824202af668ef1539c3de392cf737c5ba3fd/recipes-devtools/python/python3-scipy_1.5.3.bb#L29
# Tell Numpy to look in target sysroot site-packages directory for libraries
LDFLAGS_append = " -L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/lib"https://stackoverflow.com/questions/65676129
复制相似问题