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

使用Eel框架运行项目时遇文件不存在及WinError 10048错误求助

问题分析与解决方案

1. 文件不存在错误处理

请求的URL http://localhost:8000/index.html 导致错误:文件不存在的核心原因是项目目录结构不符合Eel的初始化约定:

Eel通过eel.init("web")指定静态资源根目录为web文件夹,这意味着所有前端文件(index.html、main.js)必须放在该web目录下。如果你的前端文件直接和logic.py同级,Eel会找不到对应资源。

正确项目结构:

你的项目文件夹/
├─ logic.py
└─ web/
   ├─ index.html
   └─ main.js

2. WinError 10048 端口占用处理

OSError: [WinError 10048]表示8000端口已被其他程序占用,Eel无法绑定该端口启动服务。解决方法有两种:

  • 指定其他空闲端口:修改eel.start()参数,指定未被占用的端口(比如8080):
    eel.start("index.html", port=8080)
    
  • 释放8000端口:打开命令提示符,执行以下命令找到并结束占用端口的进程:
    netstat -ano | findstr :8000
    taskkill /PID 进程ID /F
    
    将命令中的进程ID替换为netstat输出的数字即可。

3. 额外代码优化(非报错原因,修复功能缺陷)

你的HTML按钮点击事件存在语法问题:onclick="data"应改为onclick="data()",否则点击按钮不会触发data()函数。修正后的按钮代码:

<button onclick="data()">提交</button>

修正后的完整代码

logic.py

import eel

eel.init("web") 

@eel.expose 
def ret(x):
    print(x)

# 指定8080端口避免占用冲突
eel.start("index.html", port=8080)

web/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript" src="/eel.js"></script>
    <script type="text/javascript" src="main.js"></script>
    <title>s</title>
</head>
<body>
    <input type="text" id="text">
    <button onclick="data()">提交</button>
</body>
</html>

web/main.js

function data(){
    var x = document.getElementById("text").value
    eel.ret(x)()
}

按上述步骤调整后,重新运行logic.py即可正常启动服务并加载页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:40:17