gpt4 book ai didi

python - gevent uwsgi 插件未在 Alpine docker 中加载

转载 作者:行者123 更新时间:2023-12-01 07:55:09 26 4
gpt4 key购买 nike

我正在尝试在 Alpine docker 镜像 (3.9) 上启动一个简单的 uWSGI 服务器。这是Python脚本

def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]

我正在尝试使用以下命令启动它:

uwsgi --plugins http,python3,gevent --http :8081 --uid nobody --gid nobody --wsgi-file hello.py --module hello --master --processes 4 --gevent 2 --gevent-monkey-patch --socket /tmp/uswgi.sock

但是,每次我尝试此操作时都会收到此错误:

!!! UNABLE to load uWSGI plugin: Error relocating /usr/lib/uwsgi/gevent_plugin.so: PyInt_FromLong: symbol not found !!!
uwsgi: unrecognized option: gevent
getopt_long() error

我尝试安装python3-dev包,但命令仍然失败。有谁知道为什么会发生这种情况?这是我的 Dockerfile:

FROM alpine:3.9.3

RUN apk add --no-cache --update \
python3 \
python3-dev \
uwsgi \
uwsgi-python3 \
uwsgi-http \
uwsgi-gevent

CMD ["sh"]

最佳答案

uwsgi-gevent 是 Python 2 uWSGI 插件:
https://pkgs.alpinelinux.org/package/v3.9/main/x86_64/uwsgi-gevent

对于 Python 3,您需要 uwsgi-gevent3 .

此外,您还缺少 py3-gevent gevent Python 模块的包。

总而言之,更新的软件包列表:

RUN apk add --no-cache --update \
python3 \
python3-dev \
py3-gevent \
uwsgi \
uwsgi-python3 \
uwsgi-http \
uwsgi-gevent3

另外,不要忘记使用 gevent3 插件而不是 gevent:

uwsgi --plugins http,python3,gevent3

关于python - gevent uwsgi 插件未在 Alpine docker 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56021952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com