You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Next.js项目部署至Vercel的Python Serverless函数未被识别,求排查

Troubleshooting Unrecognized Python Serverless Function on Vercel with Next.js

Hey Juan, let's walk through the common pitfalls that might be causing your Python Serverless function to not be recognized by Vercel:

1. Double-Check File Path & Naming

First, confirm your file is in the correct location based on your Next.js setup:

  • For the Pages Router (traditional Next.js structure), the file must live at pages/api/date.py—no typos, extra subfolders, or hidden extensions like .py.txt are allowed.
  • If you're using Next.js 13+ App Router, the structure changes: create an app/api/date folder, then place your Python code in a route.py file inside it. While the handler class pattern still works here, the folder/file structure is non-negotiable for Vercel to pick it up.

2. Explicitly Declare Your Python Runtime

Vercel requires you to specify the Python version for Serverless functions. Create a runtime.txt file in your project root with a supported version, like:

python-3.10

Supported versions include 3.8, 3.9, 3.10, 3.11, and 3.12. Omitting this can lead to Vercel using an incompatible default runtime that fails to recognize your function.

3. Test Locally with Vercel CLI (Not next dev)

The standard next dev command doesn't handle non-JS/TS API routes. To replicate Vercel's environment locally:

  1. Install the Vercel CLI globally: npm install -g vercel
  2. Run vercel dev in your project root
  3. Visit http://localhost:3000/api/date—this will surface any errors that might be hidden in production deployments.

4. Verify the Handler Class Name

Double-check that your class is named exactly handler (all lowercase). Vercel looks specifically for this class name inheriting from BaseHTTPRequestHandler—a typo like Handler (capital H) will break recognition.

5. Check Vercel Deployment Logs

After deploying, head to your Vercel project dashboard, open the deployment details, and check the "Functions" tab or raw deployment logs. Look for clues like:

  • Missing runtime declaration errors
  • File path mismatches
  • Syntax errors in your Python code

6. Rule Out Conflicting Configuration

Even though modern setups don't require vercel.json for basic Python functions, if you have an existing vercel.json file, ensure it isn't excluding the pages/api directory or overriding function handling. For example, a misconfigured functions section could block Vercel from detecting your Python file.

If none of these steps resolve the issue, try deploying a brand new minimal Next.js project with just the date.py file in pages/api—this will help isolate if the problem stems from your existing project's configuration.

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

火山引擎 最新活动