Yocto 食谱 python whl 包

Mat*_*ias 2 python recipe yocto python-wheel tensorflow

我正在编写一个yocto recipe应该从.whl文件安装 python 包的自定义。

我使用包含以下内容的食谱进行了尝试:

inherit pypi setuptools
PYPI_SRC_URI="http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.5.0rc1-cp27-none-any.whl“
Run Code Online (Sandbox Code Playgroud)

但它不能那样工作,它指出,setup.py文件丢失,并且在尝试编写do_compile运行pip install <PATH-TO-WHL>它的自定义任务时说,该 pip 是一个未知的命令。

.whl文件直接安装到目标系统上时,将键入以下内容:

pip install <path-to-whl-file>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

小智 6

.whl 包只是一个带有 python 源代码的 .zip 文件,以及特定平台的预编译二进制文件。

所以,你可以做这样的事情:

COMPATIBLE_HOST = "i686.*-mingw.*"                                                                  

SRC_URI = "https://files.pythonhosted.org/packages/d8/9d/7a8cad803ef73f47134ae5c3804e20b54149ce62a7d1337204f3cf2d1fa1/MarkupSafe-1.1.1-cp35-cp35m-win32.whl;downloadfilename=MarkupSafe-1.1.1-cp35-cp35m-win32.zip;subdir=${BP}"

SRC_URI[md5sum] = "a948c70a1241389d7120db90d69079ca"                                                
SRC_URI[sha256sum] = "6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"             

inherit nativesdk python3-dir                                                                       

LICENSE = "BSD-3-Clause"                                                                            

PV = "1.1.1"                                                                                        
PN = "nativesdk-python3-markupsafe"                                                                 

LIC_FILES_CHKSUM = "file:///${S}/MarkupSafe-1.1.1.dist-info/LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"

do_unpack[depends] += "unzip-native:do_populate_sysroot"                                            

PROVIDES += "nativesdk-python3-markupsafe"                                                          
DEPENDS += "nativesdk-python3"                                                                      

FILES_${PN} += "\                                                                                   
    ${libdir}/${PYTHON_DIR}/site-packages/* \                                                       
"                                                                                                   

do_install() {                                                                                      
    install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/MarkupSafe-1.1.1.dist-info                 
    install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/markupsafe                                 

    install -m 644 ${S}/markupsafe/* ${D}${libdir}/${PYTHON_DIR}/site-packages/markupsafe/          
    install -m 644 ${S}/MarkupSafe-1.1.1.dist-info/* ${D}${libdir}/${PYTHON_DIR}/site-packages/MarkupSafe-1.1.1.dist-info/
}
Run Code Online (Sandbox Code Playgroud)

我还没有测试过,但它已经形成了合适的 nativesdk 包。请注意SRC_URI 的downloadfilename=参数 - 没有它,.whl 文件将不会被提取。