向buildroot添加pypi python包

向buildroot添加pypi python包,python,linux,module,package,buildroot,Python,Linux,Module,Package,Buildroot,我正在尝试将python3 functionfs模块集成到buildroot中。 我可以用make menuconfig选择它,但是当我运行make时,甚至都没有下载包 该软件包可在此处获得: 这里的下载url: 这里还有github回购协议: 我正在使用Buildroot 2017.02版本 以下是我的Config.in文件: config BR2_PACKAGE_PYTHON3_FUNCTIONFS bool "python3-functionfs" depends on B

我正在尝试将python3 functionfs模块集成到buildroot中。 我可以用
make menuconfig
选择它,但是当我运行
make
时,甚至都没有下载包

该软件包可在此处获得:
这里的下载url:
这里还有github回购协议: 我正在使用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包

这将在包中生成pythonfoo和pythonbar包 文件夹(如果它们存在于上)

找到外部python模块菜单,并将包插入其中。 请记住,菜单中的项目应按字母顺序排列 秩序

请记住,您很可能需要手动检查 因为有些事情是不能被人猜到的,所以请包装好所有的错误 生成器(例如,依赖于任何python核心模块 例如BR2_包_PYTHON_ZLIB)。另外,请注意 许可证和许可证文件是猜测的,必须进行检查。你也 需要手动将包添加到package/Config.in文件中

如果您的Buildroot包不在正式的Buildroot树中,而是在 在br2外部树中,使用-o标志,如下所示:

utils/scanpypi foo bar-o其他包目录

这将在 其他\u包\u目录而不是包

选项-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/scanpypi functionfs-o包
回溯(最近一次呼叫最后一次):
文件“support/scripts/scanpypi”,第47行,在
导入设置工具
文件“/usr/local/lib/python2.7/dist-packages/setuptools/_-init___.py”,第11行,在
从setuptools.extern.six.moves导入过滤器False,映射
文件“/usr/local/lib/python2.7/dist-packages/setuptools/extern/__-init__.py”,第1行,在
从pkg_resources.extern导入供应商导入器
文件“/usr/local/lib/python2.7/dist packages/pkg_resources/_init__.py”,第40行,在
从pkgutil导入获取\u导入程序
ImportError:无法导入名称获取\u导入程序
这可以通过重命名
support/scripts/pkgutil.py
support/scripts/pkgutil.pyc
来解决

然而,我想了解当我试图自己创建包而它没有下载时发生了什么



有人知道为什么在运行make时没有下载functionfs-0.3.tar.gz吗?

您的包没有下载,因为您的包名与.mk文件中的变量名不匹配。基本上,您有三件事必须匹配:

  • Config.in中的
    BR2\u包
    选项
  • 文件和目录的名称必须是
    package/.mk
  • .mk文件中的变量必须命名为
    \u SOMETHING
您没有说明.mk文件的名称,但至少您的选项名为
BR2\u PACKAGE\u PYTHON3\u FUNCTIONFS
,而make变量名为
PYTHON\u FUNCTIONFS\u SOMETHING

这就解释了为什么它没有被下载


然后,关于
scanpypi
脚本,它肯定在最近版本的Buildroot中的
utils/
目录中。几年前,它曾出现在
support/scripts
中。因此,基本上您正在查看在线的Buildroot文档(与最新版本相匹配),但您使用的是较旧的Buildroot版本。您可以通过运行
makemanual html

生成与Buildroot版本相匹配的Buildroot文档。由于包名与.mk文件中变量的名称不匹配,因此您的包未下载。基本上,您有三件事必须匹配:

  • Config.in中的
    BR2\u包
    选项
  • 文件和目录的名称必须是
    package/.mk
  • .mk文件中的变量必须命名为
    \u SOMETHING
您没有说明.mk文件的名称,但至少您的选项名为
BR2\u PACKAGE\u PYTHON3\u FUNCTIONFS
,而make变量名为
PYTHON\u FUNCTIONFS\u SOMETHING

这就解释了为什么它没有被下载

然后,关于
scanpypi
脚本,它肯定在最近版本的Buildroot中的
utils/
目录中。几年前,它曾出现在
support/scripts
中。因此,基本上您正在查看在线的Buildroot文档(与最新版本相匹配),但您使用的是较旧的Buildroot版本。通过运行
makemanualhtml
,可以构建与Buildroot版本相匹配的Buildroot文档