Hi CrewAI Team,
I am trying to upgrade my project to Python 3.13.7 and ran into an issue with installing crewai-tools.
While crewai==0.130.0 installs successfully, crewai-tools==0.47.1 fails to install because it requires embedchain>=0.1.114, which is currently not available for Python 3.13.7.
Error message:
“crewai-tools==0.47.1 cannot be installed: embedchain>=0.1.114 is not published for Python 3.13.7.”
This prevents me from using crewai-tools in a Python 3.13 environment. Could you please let me know if there are plans to support embedchain and crewai-tools on Python 3.13, or any recommended workaround?
Thank you for your support.
Hi there, I may recommend you to try using Python 3.11, where crewai can work without version conflict
Python 3.11 version is not allowed under non-compliance in our organization. Is there any alternative solution with upgraded python version.
Venkatesh-Aleti:
I am trying to upgrade my project to Python 3.13.7 and ran into an issue with installing crewai-tools.
While crewai==0.130.0 installs successfully, crewai-tools==0.47.1 fails to install because it requires embedchain>=0.1.114, which is currently not available for Python 3.13.7.
I think you should update your packages. The current version of crewai-tools is 0.75.0, and CrewAI no longer depends on Embedchain and is compatible with Python 3.13.7:
$ python --version
Python 3.13.7
And:
$ uv tree --package crewai-tools
crewai-tools v0.75.0
├── beautifulsoup4 v4.14.2
│ ├── soupsieve v2.8
│ └── typing-extensions v4.14.1
├── crewai v0.201.1
│ ├── appdirs v1.4.4
│ ├── blinker v1.9.0
│ ├── chromadb v1.1.0
│ │ ├── bcrypt v5.0.0
│ │ ├── build v1.3.0
│ │ │ ├── packaging v25.0
│ │ │ └── pyproject-hooks v1.2.0
│ │ ├── grpcio v1.75.1
│ │ │ └── typing-extensions v4.14.1
│ │ ├── httpx v0.28.1
│ │ │ ├── anyio v4.11.0
│ │ │ │ ├── idna v3.10
│ │ │ │ └── sniffio v1.3.1
│ │ │ ├── certifi v2025.8.3
│ │ │ ├── httpcore v1.0.9
│ │ │ │ ├── certifi v2025.8.3
│ │ │ │ └── h11 v0.16.0
│ │ │ └── idna v3.10
│ │ ├── importlib-resources v6.5.2
│ │ ├── jsonschema v4.25.1
│ │ │ ├── attrs v25.3.0
│ │ │ ├── jsonschema-specifications v2025.9.1
│ │ │ │ └── referencing v0.36.2
│ │ │ │ ├── attrs v25.3.0
│ │ │ │ └── rpds-py v0.27.1
│ │ │ ├── referencing v0.36.2 (*)
│ │ │ └── rpds-py v0.27.1
│ │ ├── kubernetes v33.1.0
│ │ │ ├── certifi v2025.8.3
│ │ │ ├── durationpy v0.10
│ │ │ ├── google-auth v2.41.0
│ │ │ │ ├── cachetools v6.2.0
│ │ │ │ ├── pyasn1-modules v0.4.2
│ │ │ │ │ └── pyasn1 v0.6.1
│ │ │ │ └── rsa v4.9.1
│ │ │ │ └── pyasn1 v0.6.1
│ │ │ ├── oauthlib v3.3.1
│ │ │ ├── python-dateutil v2.9.0.post0
│ │ │ │ └── six v1.17.0
│ │ │ ├── pyyaml v6.0.3
│ │ │ ├── requests v2.32.5
│ │ │ │ ├── certifi v2025.8.3
│ │ │ │ ├── charset-normalizer v3.4.3
│ │ │ │ ├── idna v3.10
│ │ │ │ └── urllib3 v2.5.0
│ │ │ │ └── pysocks v1.7.1 (extra: socks)
│ │ │ ├── requests-oauthlib v2.0.0
│ │ │ │ ├── oauthlib v3.3.1
│ │ │ │ └── requests v2.32.5 (*)
│ │ │ ├── six v1.17.0
│ │ │ ├── urllib3 v2.5.0 (*)
│ │ │ └── websocket-client v1.8.0
│ │ ├── mmh3 v5.2.0
│ │ ├── numpy v2.3.3
│ │ ├── onnxruntime v1.23.0
│ │ │ ├── coloredlogs v15.0.1
│ │ │ │ └── humanfriendly v10.0
│ │ │ ├── flatbuffers v25.9.23
│ │ │ ├── numpy v2.3.3
│ │ │ ├── packaging v25.0
│ │ │ ├── protobuf v5.29.5
│ │ │ └── sympy v1.14.0
│ │ │ └── mpmath v1.3.0
│ │ ├── opentelemetry-api v1.37.0
│ │ │ ├── importlib-metadata v8.7.0
│ │ │ │ └── zipp v3.23.0
│ │ │ └── typing-extensions v4.14.1
│ │ ├── opentelemetry-exporter-otlp-proto-grpc v1.37.0
│ │ │ ├── googleapis-common-protos v1.70.0
│ │ │ │ └── protobuf v5.29.5
│ │ │ ├── grpcio v1.75.1 (*)
│ │ │ ├── opentelemetry-api v1.37.0 (*)
│ │ │ ├── opentelemetry-exporter-otlp-proto-common v1.37.0
│ │ │ │ └── opentelemetry-proto v1.37.0
│ │ │ │ └── protobuf v5.29.5
│ │ │ ├── opentelemetry-proto v1.37.0 (*)
│ │ │ ├── opentelemetry-sdk v1.37.0
│ │ │ │ ├── opentelemetry-api v1.37.0 (*)
│ │ │ │ ├── opentelemetry-semantic-conventions v0.58b0
│ │ │ │ │ ├── opentelemetry-api v1.37.0 (*)
│ │ │ │ │ └── typing-extensions v4.14.1
│ │ │ │ └── typing-extensions v4.14.1
│ │ │ └── typing-extensions v4.14.1
│ │ ├── opentelemetry-sdk v1.37.0 (*)
│ │ ├── orjson v3.11.3
│ │ ├── overrides v7.7.0
│ │ ├── posthog v5.4.0
│ │ │ ├── backoff v2.2.1
│ │ │ ├── distro v1.9.0
│ │ │ ├── python-dateutil v2.9.0.post0 (*)
│ │ │ ├── requests v2.32.5 (*)
│ │ │ └── six v1.17.0
│ │ ├── pybase64 v1.4.2
│ │ ├── pydantic v2.11.9
│ │ │ ├── annotated-types v0.7.0
│ │ │ ├── pydantic-core v2.33.2
│ │ │ │ └── typing-extensions v4.14.1
│ │ │ ├── typing-extensions v4.14.1
│ │ │ ├── typing-inspection v0.4.1
│ │ │ │ └── typing-extensions v4.14.1
│ │ │ └── email-validator v2.3.0 (extra: email)
│ │ │ ├── dnspython v2.8.0
│ │ │ └── idna v3.10
│ │ ├── pypika v0.48.9
│ │ ├── pyyaml v6.0.3
│ │ ├── rich v14.1.0
│ │ │ ├── markdown-it-py v4.0.0
│ │ │ │ └── mdurl v0.1.2
│ │ │ └── pygments v2.19.2
│ │ ├── tenacity v9.1.2
│ │ ├── tokenizers v0.22.1
│ │ │ └── huggingface-hub v0.35.3
│ │ │ ├── filelock v3.19.1
│ │ │ ├── fsspec v2025.9.0
│ │ │ ├── hf-xet v1.1.10
│ │ │ ├── packaging v25.0
│ │ │ ├── pyyaml v6.0.3
│ │ │ ├── requests v2.32.5 (*)
│ │ │ ├── tqdm v4.67.1
│ │ │ └── typing-extensions v4.14.1
│ │ ├── tqdm v4.67.1
│ │ ├── typer v0.16.1
│ │ │ ├── click v8.3.0
│ │ │ ├── rich v14.1.0 (*)
│ │ │ ├── shellingham v1.5.4
│ │ │ └── typing-extensions v4.14.1
│ │ ├── typing-extensions v4.14.1
│ │ └── uvicorn[standard] v0.37.0
│ │ ├── click v8.3.0
│ │ ├── h11 v0.16.0
│ │ ├── httptools v0.6.4 (extra: standard)
│ │ ├── python-dotenv v1.1.1 (extra: standard)
│ │ ├── pyyaml v6.0.3 (extra: standard)
│ │ ├── uvloop v0.21.0 (extra: standard)
│ │ ├── watchfiles v1.1.0 (extra: standard)
│ │ │ └── anyio v4.11.0 (*)
│ │ └── websockets v15.0.1 (extra: standard)
│ ├── click v8.3.0
│ ├── instructor v1.11.3
│ │ ├── aiohttp v3.12.15
│ │ │ ├── aiohappyeyeballs v2.6.1
│ │ │ ├── aiosignal v1.4.0
│ │ │ │ └── frozenlist v1.7.0
│ │ │ ├── attrs v25.3.0
│ │ │ ├── frozenlist v1.7.0
│ │ │ ├── multidict v6.6.4
│ │ │ ├── propcache v0.3.2
│ │ │ └── yarl v1.20.1
│ │ │ ├── idna v3.10
│ │ │ ├── multidict v6.6.4
│ │ │ └── propcache v0.3.2
│ │ ├── diskcache v5.6.3
│ │ ├── docstring-parser v0.17.0
│ │ ├── jinja2 v3.1.6
│ │ │ └── markupsafe v3.0.3
│ │ ├── jiter v0.10.0
│ │ ├── openai v1.109.1
│ │ │ ├── anyio v4.11.0 (*)
│ │ │ ├── distro v1.9.0
│ │ │ ├── httpx v0.28.1 (*)
│ │ │ ├── jiter v0.10.0
│ │ │ ├── pydantic v2.11.9 (*)
│ │ │ ├── sniffio v1.3.1
│ │ │ ├── tqdm v4.67.1
│ │ │ └── typing-extensions v4.14.1
│ │ ├── pydantic v2.11.9 (*)
│ │ ├── pydantic-core v2.33.2 (*)
│ │ ├── requests v2.32.5 (*)
│ │ ├── rich v14.1.0 (*)
│ │ ├── tenacity v9.1.2
│ │ └── typer v0.16.1 (*)
│ ├── json-repair v0.25.2
│ ├── json5 v0.12.1
│ ├── jsonref v1.1.0
│ ├── litellm v1.74.9
│ │ ├── aiohttp v3.12.15 (*)
│ │ ├── click v8.3.0
│ │ ├── httpx v0.28.1 (*)
│ │ ├── importlib-metadata v8.7.0 (*)
│ │ ├── jinja2 v3.1.6 (*)
│ │ ├── jsonschema v4.25.1 (*)
│ │ ├── openai v1.109.1 (*)
│ │ ├── pydantic v2.11.9 (*)
│ │ ├── python-dotenv v1.1.1
│ │ ├── tiktoken v0.11.0
│ │ │ ├── regex v2025.9.18
│ │ │ └── requests v2.32.5 (*)
│ │ └── tokenizers v0.22.1 (*)
│ ├── openai v1.109.1 (*)
│ ├── openpyxl v3.1.5
│ │ └── et-xmlfile v2.0.0
│ ├── opentelemetry-api v1.37.0 (*)
│ ├── opentelemetry-exporter-otlp-proto-http v1.37.0
│ │ ├── googleapis-common-protos v1.70.0 (*)
│ │ ├── opentelemetry-api v1.37.0 (*)
│ │ ├── opentelemetry-exporter-otlp-proto-common v1.37.0 (*)
│ │ ├── opentelemetry-proto v1.37.0 (*)
│ │ ├── opentelemetry-sdk v1.37.0 (*)
│ │ ├── requests v2.32.5 (*)
│ │ └── typing-extensions v4.14.1
│ ├── opentelemetry-sdk v1.37.0 (*)
│ ├── pdfplumber v0.11.7
│ │ ├── pdfminer-six v20250506
│ │ │ ├── charset-normalizer v3.4.3
│ │ │ └── cryptography v46.0.1
│ │ │ └── cffi v2.0.0
│ │ │ └── pycparser v2.23
│ │ ├── pillow v11.3.0
│ │ └── pypdfium2 v4.30.0
│ ├── portalocker v2.7.0
│ ├── pydantic v2.11.9 (*)
│ ├── pydantic-settings v2.11.0
│ │ ├── pydantic v2.11.9 (*)
│ │ ├── python-dotenv v1.1.1
│ │ └── typing-inspection v0.4.1 (*)
│ ├── pyjwt v2.10.1
│ ├── python-dotenv v1.1.1
│ ├── pyvis v0.3.2
│ │ ├── ipython v9.6.0
│ │ │ ├── decorator v5.2.1
│ │ │ ├── ipython-pygments-lexers v1.1.1
│ │ │ │ └── pygments v2.19.2
│ │ │ ├── jedi v0.19.2
│ │ │ │ └── parso v0.8.5
│ │ │ ├── matplotlib-inline v0.1.7
│ │ │ │ └── traitlets v5.14.3
│ │ │ ├── pexpect v4.9.0
│ │ │ │ └── ptyprocess v0.7.0
│ │ │ ├── prompt-toolkit v3.0.52
│ │ │ │ └── wcwidth v0.2.14
│ │ │ ├── pygments v2.19.2
│ │ │ ├── stack-data v0.6.3
│ │ │ │ ├── asttokens v3.0.0
│ │ │ │ ├── executing v2.2.1
│ │ │ │ └── pure-eval v0.2.3
│ │ │ └── traitlets v5.14.3
│ │ ├── jinja2 v3.1.6 (*)
│ │ ├── jsonpickle v4.1.1
│ │ └── networkx v3.5
│ ├── regex v2025.9.18
│ ├── tokenizers v0.22.1 (*)
│ ├── tomli v2.2.1
│ ├── tomli-w v1.2.0
│ └── uv v0.8.22
├── docker v7.1.0
│ ├── requests v2.32.5 (*)
│ └── urllib3 v2.5.0 (*)
├── lancedb v0.25.1
│ ├── deprecation v2.1.0
│ │ └── packaging v25.0
│ ├── lance-namespace v0.0.6
│ │ ├── lance-namespace-urllib3-client v0.0.15
│ │ │ ├── pydantic v2.11.9 (*)
│ │ │ ├── python-dateutil v2.9.0.post0 (*)
│ │ │ ├── typing-extensions v4.14.1
│ │ │ └── urllib3 v2.5.0 (*)
│ │ ├── pyarrow v21.0.0
│ │ ├── pylance v0.37.0
│ │ │ ├── numpy v2.3.3
│ │ │ └── pyarrow v21.0.0
│ │ └── typing-extensions v4.14.1
│ ├── numpy v2.3.3
│ ├── overrides v7.7.0
│ ├── packaging v25.0
│ ├── pyarrow v21.0.0
│ ├── pydantic v2.11.9 (*)
│ └── tqdm v4.67.1
├── pypdf v6.1.1
├── python-docx v1.2.0
│ ├── lxml v5.4.0
│ └── typing-extensions v4.14.1
├── pytube v15.0.0
├── requests v2.32.5 (*)
├── stagehand v0.5.3
│ ├── anthropic v0.69.0
│ │ ├── anyio v4.11.0 (*)
│ │ ├── distro v1.9.0
│ │ ├── docstring-parser v0.17.0
│ │ ├── httpx v0.28.1 (*)
│ │ ├── jiter v0.10.0
│ │ ├── pydantic v2.11.9 (*)
│ │ ├── sniffio v1.3.1
│ │ └── typing-extensions v4.14.1
│ ├── browserbase v1.4.0
│ │ ├── anyio v4.11.0 (*)
│ │ ├── distro v1.9.0
│ │ ├── httpx v0.28.1 (*)
│ │ ├── pydantic v2.11.9 (*)
│ │ ├── sniffio v1.3.1
│ │ └── typing-extensions v4.14.1
│ ├── httpx v0.28.1 (*)
│ ├── litellm v1.74.9 (*)
│ ├── nest-asyncio v1.6.0
│ ├── openai v1.109.1 (*)
│ ├── playwright v1.55.0
│ │ ├── greenlet v3.2.4
│ │ └── pyee v13.0.0
│ │ └── typing-extensions v4.14.1
│ ├── pydantic v2.11.9 (*)
│ ├── python-dotenv v1.1.1
│ ├── requests v2.32.5 (*)
│ └── rich v14.1.0 (*)
├── tiktoken v0.11.0 (*)
├── youtube-transcript-api v1.2.2
│ ├── defusedxml v0.7.1
│ └── requests v2.32.5 (*)
├── mcp v1.15.0 (extra: mcp)
│ ├── anyio v4.11.0 (*)
│ ├── httpx v0.28.1 (*)
│ ├── httpx-sse v0.4.1
│ ├── jsonschema v4.25.1 (*)
│ ├── pydantic v2.11.9 (*)
│ ├── pydantic-settings v2.11.0 (*)
│ ├── python-multipart v0.0.20
│ ├── sse-starlette v3.0.2
│ │ └── anyio v4.11.0 (*)
│ ├── starlette v0.48.0
│ │ └── anyio v4.11.0 (*)
│ └── uvicorn v0.37.0 (*)
└── mcpadapt v0.1.16 (extra: mcp)
├── jsonref v1.1.0
├── mcp v1.15.0 (*)
├── pydantic v2.11.9 (*)
└── python-dotenv v1.1.1
(*) Package tree already displayed
maxmoura:
I think you should update your packages. The current version of crewai-tools is 0.75.0, and CrewAI no longer depends on Embedchain and is compatible with Python 3.13.7:
$ python --version
Python 3.13.7
And:
Thank you so much @maxmoura for your support with crewai-tools. I was stuck with installation issues, and your guidance helped me get everything working smoothly. I really appreciate the time and effort you put into helping out the community—it makes a big difference for people like me who are trying to learn and build with CrewAI.