3 回答
TA贡献1875条经验 获得超5个赞
我的最新发现:
Yocto/bitbake 似乎抑制了对需求的解释,因为这打破了解决可能导致冲突的自动依赖关系。
原因: setup.py 中所需的模块不会作为独立的包存储,而是作为我的包的一部分。因此,bitbake 不知道这个模块可能与其他可能需要不同版本中的相同模块的包发生冲突。
我的食谱里有什么:
MY_INSTALL_ARGS = "--root=${D} \
--prefix=${prefix} \
--install-lib=${PYTHON_SITEPACKAGES_DIR} \
--install-data=${datadir}"
do_install() {
PYTHONPATH=${PYTHON_SITEPACKAGES_DIR} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${MY_INSTALL_ARGS}
}
如果我在 bitbake as 之外执行此操作python3 setup.py install ${MY_INSTALL_ARGS},所有内容都将正确安装,但在配方中,没有安装任何要求。有一个参数--no-deps,但我没有找到它在哪里设置。
我认为可能有一种可能性可以利用 setup.py 中的要求:
找出--no-deps在易于安装的 openembedded/poky 层中禁用的位置。
创建一个单独的 PYTHON_SITEPACKAGES_DIR
将此单独的 PYTHON_SITEPACKAGES_DIR 安装在例如主目录中作为私有 python 模块目录。
这样,没有 python 模块会触发冲突。
由于我没有时间对此进行试验,因此我现在将为每个需求定义一个配方。
TA贡献2019条经验 获得超9个赞
你试试安装pip?
Debian
apt-get install python-pip
apt-get install python3-pip
Centos
yum install python-pip
添加回答
举报