Expected Behavior
The application should run on Vercel as it does locally on my machine with Python 3.12.8.
Steps to Reproduce
- Deploy a FastAPI application to Vercel
- Application fails during initialization
- Error trace shows an import issue with collections.Sequence
Full Error Stack
odule>
from .applications import FastAPI as FastAPI
File "/var/task/fastapi/applications.py", line 16, in <module>
from fastapi import routing
File "/var/task/fastapi/routing.py", line 24, in <module>
from fastapi import params
File "/var/task/fastapi/params.py", line 5, in <module>
from fastapi.openapi.models import Example
File "/var/task/fastapi/openapi/models.py", line 4, in <module>
from fastapi._compat import (
File "/var/task/fastapi/_compat.py", line 21, in <module>
from fastapi.exceptions import RequestErrorModel
File "/var/task/fastapi/exceptions.py", line 3, in <module>
from pydantic import BaseModel, create_model
File "/var/task/pydantic/__init__.py", line 421, in __getattr__
module = import_module(module_name, package=package)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lang/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/task/pydantic/main.py", line 34, in <module>
from ._internal import (
File "/var/task/pydantic/_internal/_model_construction.py", line 25, in <module>
from ._generate_schema import GenerateSchema
File "/var/task/pydantic/_internal/_generate_schema.py", line 10, in <module>
import pathlib
File "/var/task/pathlib.py", line 10, in <module>
from collections import Sequence
ImportError: cannot import name 'Sequence' from 'collections' (/var/lang/lib/python3.12/collections/__init__.py)
Python process exited with exit status: 1. The logs above can help with debugging the issue.
Traceback (most recent call last):
File "/var/task/vc__handler__python.py", line 14, in <module>
__vc_spec.loader.exec_module(__vc_module)
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/var/task/src/main_vercel.py", line 1, in <module>
from fastapi import FastAPI, Request, WebSocket
File "/var/task/fastapi/__init__.py", line 7, in <module>
from .applications import FastAPI as FastAPI
File "/var/task/fastapi/applications.py", line 16, in <module>
from fastapi import routing
File "/var/task/fastapi/routing.py", line 24, in <module>
from fastapi import params
File "/var/task/fastapi/params.py", line 5, in <module>
from fastapi.openapi.models import Example
File "/var/task/fastapi/openapi/models.py", line 4, in <module>
from fastapi._compat import (
File "/var/task/fastapi/_compat.py", line 21, in <module>
from fastapi.exceptions import RequestErrorModel
File "/var/task/fastapi/exceptions.py", line 3, in <module>
from pydantic import BaseModel, create_model
File "/var/task/pydantic/__init__.py", line 421, in __getattr__
module = import_module(module_name, package=package)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lang/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/task/pydantic/main.py", line 34, in <module>
from ._internal import (
File "/var/task/pydantic/_internal/_model_construction.py", line 25, in <module>
from ._generate_schema import GenerateSchema
File "/var/task/pydantic/_internal/_generate_schema.py", line 10, in <module>
import pathlib
File "/var/task/pathlib.py", line 10, in <module>
from collections import Sequence
ImportError: cannot import name 'Sequence' from 'collections' (/var/lang/lib/python3.12/collections/__init__.py)
Python process exited with exit status: 1. The logs above can help with debugging the issue.
Project Information
- Framework: FastAPI
- Python Version: 3.12.8
- Environment: Vercel Serverless Functions
- Key Dependencies:
fastapi==0.115.8 pydantic==2.10.6
Questions
- How can I recreate Vercel’s Python 3.12 environment locally to debug this issue?
- Are there any known compatibility issues with Python 3.12 in Vercel’s environment?
- What’s the recommended way to ensure dependency versions match between local and Vercel environments?
Any guidance would be greatly appreciated!