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

使用flask_ngrok运行Flask应用时报ngrok文件不存在错误如何解决?

修复方案

错误原因

flask_ngrok 包已停止维护,其内置的自动下载 ngrok 二进制文件到临时目录的逻辑失效,因此抛出找不到指定路径下 ngrok 可执行文件的错误。你本地命令行可正常运行 ngrok,说明系统已全局安装 ngrok,只需调整调用逻辑适配本地安装的 ngrok 即可。

修复方法

方案1:使用官方维护的 pyngrok 替换 flask_ngrok(推荐,稳定性更高)

  1. 先安装依赖:pip install pyngrok
  2. 替换原有代码逻辑,示例如下:
from flask import Flask
from pyngrok import ngrok

app = Flask(__name__)

@app.route('/')
def index():
    return "服务正常运行"

if __name__ == '__main__':
    # 启动指向Flask默认5000端口的ngrok公网隧道
    tunnel = ngrok.connect(5000)
    print(f"公网访问地址:{tunnel.public_url}")
    # 启动Flask服务
    app.run(port=5000)

如果之前已经在命令行执行过ngrok config add-authtoken 你的token完成认证,pyngrok会自动读取本地配置,无需额外设置。

方案2:兼容原有 flask_ngrok 代码逻辑

如果不想修改原有大量使用run_with_ngrok的代码,可以手动指定本地ngrok的可执行文件路径:

  1. 命令行执行which ngrok(Mac/Linux)或where ngrok(Windows),获取本地ngrok的安装路径,比如返回/usr/local/bin/ngrok
  2. 在调用run_with_ngrok前指定路径,示例如下:
from flask import Flask
from flask_ngrok import run_with_ngrok
import flask_ngrok

# 替换为上一步获取的本地ngrok路径
flask_ngrok.NGROK_PATH = "/usr/local/bin/ngrok"

app = Flask(__name__)
run_with_ngrok(app)

@app.route('/')
def index():
    return "服务正常运行"

if __name__ == '__main__':
    app.run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03