首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在buildroot环境中安装ruamel.yaml

如何在buildroot环境中安装ruamel.yaml
EN

Stack Overflow用户
提问于 2018-07-27 16:24:14
回答 2查看 414关注 0票数 0

ruamel.yaml似乎需要PIP来安装,这不是构建和安装package的默认buildroot解决方案。

  1. -at是否有可能--将纯ruamel.yaml版本安装到构建器映像中--以及如何绕过pip限制?
  2. 是可以交叉构建ruamel.yaml的。

强迫RUAMEL_NO_PIP_INSTALL_CHECK env.var。于事无补:

代码语言:javascript
复制
test compiling test_ruamel_yaml
running install
Checking .pth file support in ...
Failed to import the site module
ModuleNotFoundError: No module named '_sysconfigdata_m_linux_arm-linux-gnueabihf'
error: command '.../output/host/bin/python' failed with exit status 1
package/pkg-generic.mk:310: recipe for target '.../output/build/python-ruamel-yaml-0.15.45/.stamp_target_installed' failed
EN

回答 2

Stack Overflow用户

发布于 2018-07-27 17:21:34

ruamel.yaml确实需要pip从PyPI安装(使用适合于平台的.tar.gz.whl ),这是记录在案

这样做的原因是,启用嵌套包所需的修复只在为pip (而不是easy_installpython setup.py安装)实现的地方安装。

但是,这并不妨碍您使用ruamel.yaml,特别是如果您不需要C扩展(在加载时检查该扩展)。

您可以从bitbucket中签出一个标记版本,也可以从PyPI中解压一个PyPI,并将结果移到您的网站包目录中:

代码语言:javascript
复制
$ virtualenv /tmp/ruamel_yaml_no_pip
Using base prefix '/opt/python/3.7'
New python executable in /tmp/ruamel_yaml_no_pip/bin/python
Installing setuptools, pip, wheel...done.
$ cd /tmp/ruamel_yaml_no_pip/
$ source bin/activate
(ruamel_yaml_no_pip) $ mkdir lib/python3.7/site-packages/ruamel/
(ruamel_yaml_no_pip) $ touch lib/python3.7/site-packages/ruamel/__init__.py 
(ruamel_yaml_no_pip) $ wget -q https://files.pythonhosted.org/packages/63/a5/dba37230d6cf51f4cc19a486faf0f06871d9e87d25df0171b3225d20fc68/ruamel.yaml-0.15.45.tar.gz
(ruamel_yaml_no_pip) $ python -m ruamel.yaml
/tmp/ruamel_yaml_no_pip/bin/python: Error while finding module specification for 'ruamel.yaml' (ModuleNotFoundError: No module named 'ruamel')
(ruamel_yaml_no_pip) $ tar xf ruamel.yaml-0.15.45.tar.gz 
(ruamel_yaml_no_pip) $ mv ruamel.yaml-0.15.45 lib/python3.7/site-packages/ruamel/yaml
(ruamel_yaml_no_pip) $ python -c 'from ruamel.yaml import YAML; print(YAML().load("{hello: world}")["hello"])'
world
(ruamel_yaml_no_pip)
(ruamel_yaml_no_pip) $ python -c 'from ruamel.yaml import __with_libyaml__ as X; print(X)'
False

( URL是从0.15.45项目下载页面复制的)

为了进行开发,我通常只需将虚拟服务器的站点包软链接到我的ruamel目录。

我不知道如何将其转化为buildroot环境(如果是的话,请发布结果)。

票数 1
EN

Stack Overflow用户

发布于 2018-07-31 07:55:36

我忽略了buildroot文档。

有一个关键参数需要定义:SETUP_TYPE = setuptools而不是SETUP_TYPE = distutils

使用以下代码片段:

代码语言:javascript
复制
PYTHON_RUAMEL_YAML_VERSION = 0.15.45
PYTHON_RUAMEL_YAML_SOURCE = ruamel.yaml-$(PYTHON_RUAMEL_YAML_VERSION).tar.gz
PYTHON_RUAMEL_YAML_SITE = https://pypi.python.org/packages/63/a5/dba37230d6cf51f4cc19a486faf0f06871d9e87d25df0171b3225d20fc68
PYTHON_RUAMEL_YAML_SETUP_TYPE = setuptools
PYTHON_RUAMEL_YAML_LICENSE = MIT
PYTHON_RUAMEL_YAML_LICENSE_FILES = LICENSE

PYTHON_RUAMEL_YAML_ENV += RUAMEL_NO_PIP_INSTALL_CHECK=1

$(eval $(python-package))

ruamel.yaml完美地安装在目标映像上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51561971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档