You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Granian 2.5.7版本TLS配置参数缺失问题求助

Granian 2.5.7 中--ssl-protocol-min/--ssl-protocol-version参数无法使用的问题

我注意到Granian更新到了2.5.7版本,因为需要配置TLS版本限制,看到GitHub官方文档里新增了--ssl-protocol-version和--ssl-protocol-min两个参数,于是更新了依赖并确认容器里装的是2.5.7版本,但运行容器时提示参数不存在,执行granian --help也看不到这两个参数,可GitHub文档里明确有。

相关验证信息

  • 验证安装版本:
    docker run --rm myImage pip show granian
    
    输出显示版本为2.5.7。
  • 重新构建容器命令:
    docker compose build --no-cache  
    docker compose up -d  
    
  • 容器内执行granian --help,输出里没有目标参数,但GitHub文档中有对应参数。

容器报错信息

my-container  | Usage: granian [OPTIONS] APP
my-container  | Try 'granian --help' for help.
my-container  | 
my-container  | Error: No such option: --ssl-protocol-min

我的Docker CMD配置

CMD ["granian", \
     "--host", "0.0.0.0", \
     "--port", "16700", \
     "--interface", "asgi", \
     "--workers", "8", \
     "--ssl-certificate", "/etc/ssl/certs/app/cert.crt", \
     "--ssl-keyfile", "/etc/ssl/certs/app/cert.key", \
     "--ssl-protocol-min", "tls1.2", \
     "--ssl-protocol-version", "auto", \
     "src.my_app.main:app"]

可能的排查方向

  1. 检查文档与发布版本的同步性
    GitHub默认展示的是main分支的文档,可能这些参数是在2.5.7发布之后才合并到主分支的,还没包含在正式发布的2.5.7版本里。你可以查看Granian的Release页面,确认2.5.7的更新日志里是否有这两个参数的记录。

  2. 验证容器中Granian的实际执行路径
    容器里可能存在多个Python环境,pip show granian显示的是某个环境的版本,但实际执行的granian命令可能来自另一个环境。可以在容器里执行以下命令确认:

    which granian
    # 查看该路径下的Granian版本
    $(which granian) --version
    

    如果版本不一致,说明你执行的不是2.5.7版本的Granian,需要调整容器的环境变量或执行路径。

  3. 尝试安装GitHub开发版
    如果确认文档里的参数还没正式发布到PyPI的2.5.7版本,可以直接安装GitHub主分支的版本测试:

    pip install git+https://github.com/emmett-framework/granian.git@main
    

    重新构建容器后再测试参数是否可用。

  4. 查看Granian源码确认参数存在性
    切换到GitHub上Granian的2.5.7 tag,查看CLI参数定义的源码部分,确认--ssl-protocol-min和--ssl-protocol-version是否存在。如果源码里没有,那就是文档超前了,需要等后续版本发布或者使用开发版。

内容的提问来源于stack exchange,提问作者Geo48

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:20:07