No module named 'pydantic_core._pydantic_core'

I’m working on this script, but getting the error:

Traceback (most recent call last):
  File "/home/runner/MythEngine/rewrite.py", line 2, in <module>
    import litellm
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/litellm/__init__.py", line 369, in <module>
    from .timeout import timeout
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/litellm/timeout.py", line 20, in <module>
    from litellm.exceptions import Timeout
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/litellm/exceptions.py", line 12, in <module>
    from openai import (
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/openai/__init__.py", line 8, in <module>
    from . import types
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/openai/types/__init__.py", line 5, in <module>
    from .edit import Edit as Edit
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/openai/types/edit.py", line 6, in <module>
    from .._models import BaseModel
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/openai/_models.py", line 20, in <module>
    from pydantic.fields import FieldInfo
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/pydantic/fields.py", line 21, in <module>
    from pydantic_core import PydanticUndefined
  File "/home/runner/MythEngine/.pythonlibs/lib/python3.10/site-packages/pydantic_core/__init__.py", line 6, in <module>
    from ._pydantic_core import (
ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'

Does this look like an error in the litellm library or a problem with Replit? I’ve used Litellm a lot before on a different Repl without this error. Pydantic (and pydantic_core) are both installed.

import os
import litellm
from litellm import completion

os.environ["OPENROUTER_API_KEY"]

def rewrite_text(text):
    try:
        response = completion(
            model="openrouter/mistralai/mixtral-8x7b-instruct",
            temperature=0.9,
            top_p=0.6,
            max_tokens=500,
            messages=[
                {"role": "system", "content": "Rewrite the following story in under 300 tokens "},
                {"role": "user", "content": text}
            ]
        )
        return response.choices[0].message['content']
    except Exception as e:
        print(f"Error during OpenAI API call: {e}")
        return None


def process_markdown_files(folder_path):
    """
    Process all markdown files in the given folder.
    """
    for filename in os.listdir(folder_path):
        if filename.endswith('.md'):
            file_path = os.path.join(folder_path, filename)
            with open(file_path, 'r', encoding='utf-8') as file:
                content = file.read()
                rewritten_content = rewrite_text(content)
                if rewritten_content:
                    # Process the rewritten content as needed
                    print(f"Rewritten content for {filename}:\n{rewritten_content}\n")

# Path to the folder containing markdown files
folder_path = 'stories'
process_markdown_files(folder_path)

This honestly seems more like a litellm issue to me rather than a Replit issue.
You could try kill 1ing [1] the Repl, or if possible, delete this Repl and move to another.


  1. Running kill 1 in the Shell. ↩︎

I got a similar issue after trying multiple times install/uninstall all combinations of pydantic-[*] packages, finally it seems to be some inconsistency between different version of pydantic & python versions, what worked for me is to use python-3.11 in .replit file as follows:


modules = ["vue-node-20", "nodejs-20", "web", "nix", "python-3.11"]

P.S. In that project have Node with Vue stack.
The default version -at this time- is python-3.12 which didn’t work, I’ve also tried python-3.10 which doesn’t work either.