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

Vercel部署Python项目遇ModuleNotFoundError:找不到data模块

解决同目录Python模块导入失败的问题

1. 检查当前工作目录

Python查找模块时,默认从运行脚本的当前工作目录和系统路径里找。如果你不是在/api目录下运行脚本,自然找不到同目录的data.py。

解决:
打开终端,切换到/api目录后再运行脚本:

cd /你的/api目录的绝对路径
python 你的脚本文件名.py

2. 添加__init__.py文件

部分环境(如部分服务器、旧版工具)要求把目录标记为Python包才能识别内部模块,这时候需要在/api目录下新建一个空的__init__.py文件。

解决:
在/api文件夹里创建名为__init__.py的空文件,无需写入任何内容,Python就会把该目录当作可识别的包。

3. 使用相对导入(适用于脚本被外部调用的情况)

如果你的脚本是被/api目录外的文件调用的,直接from data import *会失效,需要用相对导入语法。

解决:
把导入语句修改为:

from .data import *

注意开头的.,代表当前目录。这种方式需要确保/api目录有__init__.py,且调用时用包的方式运行(比如python -m api.你的脚本名,而不是直接python api/你的脚本名.py)。

4. 手动添加系统路径(兜底方案)

如果以上方法都无效,可以手动把/api目录加入Python的系统查找路径。

解决:
在脚本最开头添加以下代码:

import sys
import os
# 获取当前脚本所在目录的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 将目录添加到Python系统路径
sys.path.append(current_dir)

from data import *
# 后续代码保持不变

你的代码调整示例

修改后的开头代码可以是这样(以添加系统路径为例):

import sys
import os
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(current_dir)

from data import *
import numpy as np
from http.server import BaseHTTPRequestHandler
from urllib.parse import urlparse, parse_qs
import json

# 后面的handler类和do_GET方法不变

内容的提问来源于stack exchange,提问作者beginnersLuck.css

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:45:05