使用 PyBOMBS 安装 GNU Radio

Installing GNU Radio using PyBOMBS

我正在按照 https://github.com/gnuradio/pybombs 上的安装说明进行操作。

我收到以下错误消息:

→ sudo -H pybombs prefix init ~/prefix -a myprefix -R gnuradio-default
PyBOMBS.ConfigManager - INFO - Prefix Python version is: 2.7.6
PyBOMBS - INFO - PyBOMBS Version 2.3.3a0
PyBOMBS.prefix - WARNING - There already is a prefix in `~/prefix'.
Continue using this path Y/[N]? y
PyBOMBS.ConfigManager - INFO - Prefix Python version is: 2.7.6
Alias `myprefix' already exists, overwrite Y/[N]? y
PyBOMBS.ConfigManager - INFO - Prefix Python version is: 2.7.6
PyBOMBS.prefix - INFO - Installing default packages for prefix...
PyBOMBS.prefix - INFO -
  - <ruamel.yaml.comments.CommentedSeq object at 0x7f3891d44d20>
  - <ruamel.yaml.comments.CommentedSeq object at 0x7f3891d44d70>
PyBOMBS.install_manager - INFO - Phase 1: Creating install tree and installing binary packages:
PyBOMBS.get_recipe - ERROR - Error fetching recipe `<ruamel.yaml.comments.CommentedSeq object at 0x7f3891d44d20>':
Package <ruamel.yaml.comments.CommentedSeq object at 0x7f3891d44d20> has no recipe file!

ruamel.yamel 的用法似乎不匹配。重新安装 ruamel.yamel 没有解决这个问题:

→ sudo -H pip install --upgrade --force-reinstall ruamel.yaml
Collecting ruamel.yaml
  Downloading https://files.pythonhosted.org/packages/3c/bf/6be7b1510270d785ca53193d06ba64c2f2bd969db732d108e2a82cbc9a0e/ruamel.yaml-0.15.57-cp27-cp27mu-manylinux1_x86_64.whl (590kB)
Collecting ruamel.ordereddict; platform_python_implementation == "CPython" and python_version <= "2.7" (from ruamel.yaml)
  Using cached https://files.pythonhosted.org/packages/f3/2c/fa6d75dc459b371ed3b88fdbf8042785ce1655073c884fd97bdbb9f48e01/ruamel.ordereddict-0.4.13-cp27-cp27mu-manylinux1_x86_64.whl
Installing collected packages: ruamel.ordereddict, ruamel.yaml
  Found existing installation: ruamel.ordereddict 0.4.13
    Uninstalling ruamel.ordereddict-0.4.13:
      Successfully uninstalled ruamel.ordereddict-0.4.13
  Found existing installation: ruamel.yaml 0.15.55
    Uninstalling ruamel.yaml-0.15.55:
      Successfully uninstalled ruamel.yaml-0.15.55
Successfully installed ruamel.ordereddict-0.4.13 ruamel.yaml-0.15.57

我使用 Ubuntu 14.04.4 LTS(由于各种原因我无法升级)。

任何建议将不胜感激。

PyBOMBS 无法应对 ruamel.yaml 中最近的变化,其中 CommentedMapCommentedSeq 不再是 dictlist 的子类,而是抽象的子类基类 MutableMapping 分别。 MutableSequence(来自 collections.abc)。 PyBombs 实际上使用 isinstance()dict 分别进行了检查。 list.

安装旧版本的 ruamel.yaml(任何 <= 0.15.52)应该可以,您可以使用 pip install 'ruamel.yaml<=0.15.52'

同时提交了 PR 并合并以解决此问题,因此请确保您 运行 使用从 github 签出的最新版本的 PyBOMBS。

您的 config.yml 很可能是 运行 的,所以请确保您 restore/regenerate 那个。