首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >devpi -如何获得"root/<package>/json“服务

devpi -如何获得"root/<package>/json“服务
EN

Stack Overflow用户
提问于 2020-09-03 02:53:25
回答 1查看 161关注 0票数 1

我的目标是在micropython设备上安装python包。不管怎样,我让devpi-server运行并上传了一个包。

我不能实现的是,devpi-server交付的内容与您从https://micropython.org/pi/micropython-pystone_lowmem/json获得的内容类似。

访问上面的url是,"upip“如何获得它的包信息。

所以我是Pypy-server和devpi-server的新手,这可能是一个微不足道的问题,不管怎样,我被困在这一点上了。

提前谢谢你的帮助,埃克塞尔。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 04:00:27

通过devpi-server安装micropython包需要两个步骤。

1:由于来自devpi-server项目的@fschulze的支持,为devpi- gist.github.com/fschulze/077320ab51f8ae91381d5e7faa0ac647提供了一个Gist,它增加了/json能力。

更新:您可以从https://pypi.org/project/devpi-json-info/安装带有pip install devpi-json-info的devpi-json-info

第二: upip.py需要一个补丁来支持端口号:

Update 2020-10-20:多亏了@dpgeorge,56e0932,下面的补丁已经进入了micropython存储库

Update 2020-10-08:添加了以下PR:6521补丁

代码语言:javascript
复制
 --- upip.py.orig   2020-09-01 21:14:20.410287796 +0200
 +++ upip.py    2020-09-11 21:54:03.567011061 +0200
 @@ -129,7 +129,11 @@
  
      proto, _, host, urlpath = url.split("/", 3)
      try:
 -        ai = usocket.getaddrinfo(host, 443, 0, usocket.SOCK_STREAM)
 +        port = 443
 +        if ":" in host:
 +            host, port = host.split(":")
 +            port = int(port)
 +        ai = usocket.getaddrinfo(host, port, 0, usocket.SOCK_STREAM)
      except OSError as e:
          fatal("Unable to resolve %s (no Internet?)" % host, e)
      # print("Address infos:", ai)
 @@ -147,7 +151,7 @@
                  warn_ussl = False
  
          # MicroPython rawsocket module supports file interface directly
 -        s.write("GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" % (urlpath, host))
 +        s.write("GET /%s HTTP/1.0\r\nHost: %s:%s\r\n\r\n" % (urlpath, host, port))
          l = s.readline()
          protover, status, msg = l.split(None, 2)
          if status != b"200":
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63711923

复制
相关文章

相似问题

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