devpi - 如何获得 "root/<package>/json" 服务
devpi - how to get "root/<package>/json" served
我的目标是在微型python 设备上安装python 软件包。无论如何,我将 devpi-server 连接到 运行 并上传了一个包。
我无法实现的是,devpi-server 提供的东西与您从中得到的一样:
https://micropython.org/pi/micropython-pystone_lowmem/json
访问上面的url就是“upip”如何获取它的包信息。
所以我是 Pypy-server 和 devpi-server 的新手,这可能是一个微不足道的问题,无论如何我都卡在了这一点上。
提前感谢您的帮助,Axel。
需要两个步骤才能通过 devpi-server 安装 micropython 包。
第一:
感谢来自 devpi-server 项目的@fschulze 的支持,提供了一个 Gist gist.github.com/fschulze/077320ab51f8ae91381d5e7faa0ac647,它将 /json capbility 添加到 devpi-server.
更新:您可以使用 pip install devpi-json-info
安装 devpi-json-info
来自 https://pypi.org/project/devpi-json-info/
第二名:
upip.py 需要一个补丁来支持端口号:
2020-10-20 更新:由于@dpgeorge,下面的补丁已经在 micropython 存储库中,56e0932
2020-10-08 更新:添加以下补丁 PR:6521
--- 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":
我的目标是在微型python 设备上安装python 软件包。无论如何,我将 devpi-server 连接到 运行 并上传了一个包。
我无法实现的是,devpi-server 提供的东西与您从中得到的一样: https://micropython.org/pi/micropython-pystone_lowmem/json
访问上面的url就是“upip”如何获取它的包信息。
所以我是 Pypy-server 和 devpi-server 的新手,这可能是一个微不足道的问题,无论如何我都卡在了这一点上。
提前感谢您的帮助,Axel。
需要两个步骤才能通过 devpi-server 安装 micropython 包。
第一: 感谢来自 devpi-server 项目的@fschulze 的支持,提供了一个 Gist gist.github.com/fschulze/077320ab51f8ae91381d5e7faa0ac647,它将 /json capbility 添加到 devpi-server.
更新:您可以使用 pip install devpi-json-info
安装 devpi-json-info
来自 https://pypi.org/project/devpi-json-info/
第二名: upip.py 需要一个补丁来支持端口号:
2020-10-20 更新:由于@dpgeorge,下面的补丁已经在 micropython 存储库中,56e0932
2020-10-08 更新:添加以下补丁 PR:6521
--- 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":