【发布时间】:2018-01-12 15:54:35
【问题描述】:
我正在尝试将 python3-functionfs 模块集成到 buildroot 中。
我可以使用make menuconfig 选择它,但是当我运行make 时,甚至没有下载包。
该软件包可在此处获得:functionfs-0.3 pypi page
下载地址在这里:functionfs-0.3 download link
这里还有 github 仓库:functionfs git repository
我使用的是 Buildroot 2017.02 版本。
这是我的 Config.in 文件:
config BR2_PACKAGE_PYTHON3_FUNCTIONFS
bool "python3-functionfs"
depends on BR2_PACKAGE_PYTHON3
help
Pythonic API for linux’s functionfs.
functionfs is part of the usb gadget subsystem. Together with usb_gadget’s configfs integration, allows userland to declare and implement an USB device.
https://pypi.python.org/pypi/functionfs
这是我的 .mk 文件:
################################################################################
#
# python3-functionfs
#
################################################################################
PYTHON_FUNCTIONFS_VERSION = 0.3
PYTHON_FUNCTIONFS_SOURCE = functionfs-$(PYTHON_FUNCTIONFS_VERSION).tar.gz
PYTHON_FUNCTIONFS_SITE = https://pypi.python.org/packages/e3/2d/56e0d9ffe0da7c116a6724ee538375689dd59e34dbe1676edf6b66b52be4
PYTHON_FUNCTIONFS_LICENSE = GPLv3+
PYTHON_FUNCTIONFS_LICENSE_FILE = COPYING
PYTHON_FUNCTIONFS_SETUP_TYPE = setuptools
$(eval $(python-package))
该文档还在 17.8.3 中提及。从 PyPI 存储库生成 python 包
如果您要为其创建 Buildroot 的 Python 包 包在 PyPI 上可用,您可能需要使用 scanpypi 工具 位于 utils/ 以自动化该过程。
您可以在此处找到现有 PyPI 包的列表。
scanpypi 需要安装 Python 的 setuptools 包 主持人。
当你在你的 buildroot 目录的根目录下时:
utils/scanpypi foo bar -o package这将在包中生成包python-foo和python-bar 文件夹(如果它们存在于 https://pypi.python.org 上)。
找到外部 python 模块菜单并将您的包插入其中。 请记住,菜单中的项目应按字母顺序排列 顺序。
请记住,您很可能需要手动检查 为任何错误打包,因为有些事情是无法猜测的 生成器(例如,依赖于任何 python 核心模块 例如 BR2_PACKAGE_PYTHON_ZLIB)。另外,请注意, 许可证和许可证文件是猜测的,必须检查。你也 需要手动将包添加到 package/Config.in 文件中。
如果您的 Buildroot 包不在官方的 Buildroot 树中,而是在 一个 br2-external 树,使用 -o 标志如下:
utils/scanpypi foo bar -o other_package_dir这将在 other_package_directory 而不是包。
选项 -h 将列出可用选项:
utils/scanpypi -h
但是我在 buildroot 主目录中没有 util/ 文件夹。
该脚本位于support/scripts/scanpypi,但是当我运行它时出现以下错误:
$ support/scripts/scanpypi functionfs -o package
Traceback (most recent call last):
File "support/scripts/scanpypi", line 47, in <module>
import setuptools
File "/usr/local/lib/python2.7/dist-packages/setuptools/__init__.py", line 11, in <module>
from setuptools.extern.six.moves import filterfalse, map
File "/usr/local/lib/python2.7/dist-packages/setuptools/extern/__init__.py", line 1, in <module>
from pkg_resources.extern import VendorImporter
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 40, in <module>
from pkgutil import get_importer
ImportError: cannot import name get_importer
这可以通过重命名support/scripts/pkgutil.py 和support/scripts/pkgutil.pyc 来解决。
但是,当我尝试自己创建包但无法下载时,我想了解发生了什么。
有人知道为什么运行make时没有下载functionfs-0.3.tar.gz吗?
【问题讨论】:
标签: python linux module package buildroot