unclecode / unclecode/crawl4ai

[Bug]: Not Compatible with Python 3.14 (lxml dependency failure)

Open
#1,903 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

⚰️ Wontfix
Dominant language
Python
Stars
83.9k
Forks
8.7k
Avg merge
3d 7h
Merged PRs (30d)
11

Description

crawl4ai version

0.8.6

Summary

Crawl4AI installation fails in Python 3.14 environment due to lxml~=5.3.
Using lxml 6.0.2 works!

AI Analysis


pip install crawl4ai fails on Windows with Python 3.14 due to lxml~=5.3 source build error

Body

Describe the bug

Installing crawl4ai on Windows with Python 3.14 fails during dependency installation when pip tries to build lxml from source.

The failure appears related to Crawl4AI depending on lxml~=5.3, which resolves to lxml 5.4.0 in my environment. On Windows + Python 3.14, pip does not appear to find a compatible wheel and falls back to a native source build, which then fails because libxml2 headers/libraries are not available.

To Reproduce
  1. On Windows, create a fresh virtual environment with Python 3.14
  2. Run:
pip install crawl4ai
  1. Installation fails while building lxml
Expected behavior

pip install crawl4ai should either:

  • install successfully on Python 3.14, or
  • fail early with a clear message that Python 3.14 is not currently supported
Actual behavior

Installation fails while building lxml from source.

Error output
Building wheels for collected packages: lxml
  Building wheel for lxml (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for lxml (pyproject.toml) did not run successfully.
  │ exit code: 1

...
fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': No such file or directory
Compile failed: command '...\\cl.exe' failed with exit code 2

...
fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory

*********************************************************************************
Could not find function xmlXPathInit in library libxml2. Is libxml2 installed?
Is your C compiler installed and configured correctly?
*********************************************************************************

ERROR: Failed building wheel for lxml
Failed to build lxml
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> lxml
Environment
  • OS: Windows 11
  • Python: 3.14.2
  • pip: latest available at time of test
  • Compiler/tooling: Visual Studio 2022 C++ tools detected in build log
Additional context

Current Crawl4AI PyPI metadata appears to declare:

  • Requires-Python: >=3.10
  • Python classifiers for:
    • 3.10
    • 3.11
    • 3.12
    • 3.13

But not 3.14.

Current dependency metadata also includes:

lxml~=5.3

So this may be a Python 3.14 compatibility gap caused by the current lxml version range, rather than a general Windows install problem.

Suggested fix

Possible options:

  1. Explicitly document that Python 3.14 is not yet supported
  2. Add a clearer install-time guard or message for unsupported Python versions
  3. Relax/update the lxml dependency if a newer version line works with Python 3.14
  4. Document a recommended Python version such as 3.12 or 3.13 for Windows users
Workaround

Using Python 3.12 or 3.13 appears to be the safest workaround.


Current Behavior

Installation fails with error.

Is this reproducible?

Yes

OS

Windows

Python version

3.14

Browser

No response

Browser version

No response

Error logs & Screenshots (if applicable)

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Windows 11/Python 3.14 installation with the current dependency metadata and verify the lxml version resolution. Inspect the project’s package metadata and Python-version classifiers, then compare installation behavior with lxml 5.4.0 and 6.0.2. Done means Python 3.14 installs successfully or is rejected with a clear support message, with existing supported versions unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.