如题,生产环境有一套嵌入式 python,基于 3.5 版本不能修改。想要通过 web 服务进行控制,而且最好不依赖第三方库,有什么代码可以快速实现一个基础的基于 http (或者 tcp )进行远程调用的服务吗?
贴个条更新一下目前的信息:
1、aiohttp可以在3.5运行,不好用
2、bottle我试了,但是因为内核线程管理策略的原因,平台导致效率应该会比异步低很多,不过应该也堪用。bottle的问题是,本身没法支持ssl协议,http在大量通信的情况下可能出现错误。。。试了试安装旧版本的werkzeug和openssl这些,openssl我没有安装成功
1
AoEiuV020 2021-08-20 14:55:32 +08:00
python3 有个自带的 http.server,应该可以简单实现 http 服务器端,
|
2
SbloodyS 2021-08-20 15:04:37 +08:00
|
4
0bit 2021-08-20 15:24:04 +08:00
Python 自带 RPC,可以试试,不过好多年没用过这种方案了,感觉有点怪
|
5
yucongo 2021-08-20 15:30:15 +08:00
python -m http.server
服务端口:0.0.0.0:8080 帮助:python -m http.server --help |
6
abersheeran 2021-08-20 15:31:13 +08:00
如果你不想要第三方依赖,标准库里的 XML RPC 是你唯一的选择了。
另外,aiohttp 不支持 python3.5 |
7
renmu123 2021-08-20 15:56:55 +08:00 via Android
不想要依赖就只能手撸了
|
8
keepeye 2021-08-20 16:09:57 +08:00
@abersheeran 3.5.6 正在用 aiohttp
|
9
among 2021-08-20 16:34:25 +08:00
bottle,就一个 py 文件。
|
10
debuggerx 2021-08-20 17:05:01 +08:00
|
11
cloverstd 2021-08-20 18:04:03 +08:00
此处就体现了 Go 的优势了
|
12
Kobayashi 2021-08-20 18:15:48 +08:00
3.5 就别考虑异步了,最好 3.7 起步。
|
13
abersheeran 2021-08-20 21:04:41 +08:00
@keepeye 上古版本的 aiohttp ?你用的那版本连接泄露的 BUG 修了吗
|
14
SingeeKing 2021-08-20 21:53:48 +08:00 via iPhone
最好不依赖第三方库 aiohttp 难道不是第三方
|
15
Richard14 OP @SingeeKing 打错了,脑袋里想的是 asyncio,打成 aiohttp 了
|
16
Leon6868 2021-08-22 18:28:31 +08:00
你可以参考 pydoc 的实现方法,用 python 自带的 http 模块实现一个基础的服务器。
|