【发布时间】:2020-12-22 00:00:15
【问题描述】:
我的目标是在 micropython 设备上安装 python 包。无论如何,我让 devpi-server 运行并上传了一个包。
我无法实现的是,devpi-server 提供了类似于您从中获得的东西: https://micropython.org/pi/micropython-pystone_lowmem/json
访问上面的url就是,“upip”是如何获取它的包信息的。
所以我是 Pypy-server 和 devpi-server 的新手,这可能是一个微不足道的问题,无论如何我在这一点上卡住了。
感谢您提前提供的任何帮助,Axel。
【问题讨论】:
-
仍在为这个问题苦苦挣扎:我修改了 upip 以便它请求“application/json”......无论如何,响应有很多(不相关的)信息,ujson.load() 放弃了(可能内存不足)。 devpi 中需要的是wiki.python.org/moin/PyPIJSON 缺少的东西;一个教程如何制作和调试一个非常简单的 devpi 插件。任何回复都非常受欢迎!阿克塞尔。
-
看看这个要点:gist.github.com/fschulze/077320ab51f8ae91381d5e7faa0ac647 虽然它不做任何检查,所以可能有一些例外的可能性。您可以从那里构建,查看 devpi-server 和 devpi-web 所做的工作以将列表过滤到例如最新版本或仅特定类型的版本。
-
@fschulze,感谢您的快速响应,我用 curl 对其进行了简要测试并得到了 NotSerializable 异常。快速查看数据,发现 Info 块中有一些 SeqViewReadonly([]) 对象,这可能是造成这种情况的原因。 TypeError: SeqViewReadonly([]) is not JSON serializable 为了更进一步,一个快速而肮脏的过滤器将 SeqViewReadonly 替换为空字符串,现在就可以了。感谢您的帮助,我稍后会回到这个帖子。
-
我已经通过调用
get_mutable_deepcopy更新了要点,这就是为此目的。我希望我没有破坏它,我没有测试更改。 -
此更改有效,下一个挑战是现在将端口号添加到 url: {'0.0.1': [{'url': 'localhost/testuser/dev/+f/333/27252594686a5/…'}] 应为 localhost:3141 .非常感谢您的帮助。
标签: devpi