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

FreeBSD下Lektor Server无法启动问题求助

问题描述

通过FreeBSD Ports安装Lektor 3.2.2,过程无报错,执行lektor quickstart成功创建项目,但运行lektor server时出现以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/lektor", line 33, in <module>
    sys.exit(load_entry_point('Lektor==3.2.2', 'console_scripts', 'lektor')())
  File "/usr/local/lib/python3.9/site-packages/lektor/cli.py", line 766, in main
    cli.main(args=args, prog_name=name)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/lektor/cli.py", line 471, in server_cmd
    from lektor.devserver import run_server
  File "/usr/local/lib/python3.9/site-packages/lektor/devserver.py", line 9, in <module>
    from lektor.admin import WebAdmin
  File "/usr/local/lib/python3.9/site-packages/lektor/admin/__init__.py", line 1, in <module>
    from .webui import WebAdmin
  File "/usr/local/lib/python3.9/site-packages/lektor/admin/webui.py", line 7, in <module>
    from flask.helpers import safe_join
ImportError: cannot import name 'safe_join' from 'flask.helpers' (/usr/local/lib/python3.9/site-packages/flask/helpers.py)

操作系统版本:

FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC amd64

已按官方快速开始步骤操作,为默认安装,谷歌搜索未找到有效解决方案,询问修复方法及是否为已知Bug。

解决方案

这个问题是Lektor 3.2.2与新版本Flask不兼容导致的:safe_join在Flask 2.3+版本中已从flask.helpers迁移到flask.safe_join,而Lektor 3.2.2仍在使用旧的导入路径,属于已知兼容性问题。

提供三种修复方式:

  • 降级Flask到2.2.x版本,执行命令:
    pip3.9 install flask==2.2.5
    
    注意使用对应Python版本的pip工具(比如FreeBSD下的pip3.9)。
  • 手动修改Lektor代码文件:
    编辑/usr/local/lib/python3.9/site-packages/lektor/admin/webui.py,将第7行的
    from flask.helpers import safe_join
    
    修改为
    from flask import safe_join
    
    保存后重新运行lektor server即可。
  • 升级Lektor到最新版本:如果FreeBSD Ports有更新包,可通过Ports升级;也可使用pip安装最新版Lektor,新版本已修复该导入路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:36:22