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

Phoenix服务器启动Observer失败:模块:observer不可用

解决Phoenix中调用:observer.start()报错的问题

问题重现

启动Phoenix服务器后调用:observer.start()出现如下错误:

$iex -S mix phx.server

iex(1)> :observer.start()
** (UndefinedFunctionError) function :observer.start/0 is undefined (module :observer is not available)
    :observer.start()
    iex:1: (file)

使用版本:IEx 1.15.4(编译自Erlang/OTP 26)

原因

从Erlang/OTP 21开始,observer不再是默认自动加载的核心应用,而是作为独立的工具应用存在。如果启动Phoenix时未加载该应用,就会触发模块不可用的错误。

解决办法

方法1:启动时手动加载Observer

启动IEx时直接指定加载Observer应用:

iex -S mix phx.server -e ":application.ensure_all_started(:observer)"

或者进入IEx会话后先执行加载命令,再启动Observer:

iex(1)> :application.ensure_all_started(:observer)
iex(2)> :observer.start()

方法2:在项目配置中添加Observer到额外应用

打开项目的config/dev.exs(仅在开发环境启用即可),找到extra_applications配置项,添加:observer:

config :your_app_name, YourAppNameWeb.Endpoint,
  # 其他配置...
  extra_applications: [:logger, :runtime_tools, :observer]

修改后重启Phoenix服务器,即可直接调用:observer.start()。

方法3:确保Erlang安装包含Observer组件

部分包管理器安装的Erlang可能默认不包含Observer等工具组件,可通过以下方式处理:

  • 使用kerl安装Erlang时,选择完整版本编译
  • 使用asdf安装Erlang时,确保安装过程中未排除Observer相关组件
  • 从Erlang官方渠道下载完整安装包进行安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:30:57