[Python] NameError: name 'ONNXMiniLM_L6_V2' is not defined when trying to use pyinstaller

Discussão em 'Python' iniciado por Stack, Março 18, 2025.

  1. Stack

    Stack Membro Participativo

    So, I've been working on an application using python and tkinter that will allow someone to use an offline LLM to ask questions regarding files that they can upload. We are using langchain_chroma to handle the embeddings. I dont think I can share my source code but I will share my imports as I believe this will help:

    We have a populate_database.py file:

    import argparse
    import os
    import shutil
    from langchain_community.document_loaders import PyPDFDirectoryLoader
    from langchain_text_splitters import RecursiveCharacterTextSplitter
    from langchain.schema.document import Document
    from embedding import embedding_function
    from langchain_community.vectorstores import Chroma
    from langchain_community.document_loaders import UnstructuredMarkdownLoader
    from langchain_community.document_loaders import UnstructuredWordDocumentLoader


    embedding.py file:

    from transformers import AutoModelForCausalLM, AutoTokenizer, AutoModel
    import torch


    main.py:

    from time import sleep
    import tkinter as tk
    from tkinter import scrolledtext, filedialog
    import torch
    from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
    from langchain_chroma import Chroma
    from langchain.prompts import PromptTemplate
    from populate_database import add_documents_to_chroma, clear_database
    from embedding import embedding_function
    import gc


    We are using two models:


    The project structure is as follows:

    • chroma (folder for the database)
    • data (just some sample pdf's for testing)
    • Qwen2.5-3B (LLM model folder)
    • multilingual-e5-large (model folder for embeddings)
    • dist (from attempted compilation)
    • build (from attempted compilation)
    • embedding.py
    • main.py
    • populate_database.py

    The command I used was simply:

    pyinstaller main.py --onefile -w


    Full error message is as follows:

    NameError: name 'ONNXMiniLM_L6_V2' is not defined


    Traceback (most recent call last):
    File "main.py", line 6, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "langchain_chroma\__init__.py", line 6, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "langchain_chroma\vectorstores.py", line 25, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "chromadb\__init__.py", line 3, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "chromadb\api\__init__.py", line 34, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "chromadb\api\models\Collection.py", line 3, in <module>
    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    File "PyInstaller\loader\pyimod02_importers.py", line 384, in exec_module
    File "chromadb\api\models\CollectionCommon.py", line 100, in <module>
    File "chromadb\api\models\CollectionCommon.py", line 112, in CollectionCommon
    File "chromadb\utils\embedding_functions\__init__.py", line 57, in DefaultEmbeddingFunction
    NameError: name 'ONNXMiniLM_L6_V2' is not defined


    I have tried the steps here: chromadb 'ONNXMiniLM_L6_V2' embedding not defined with pyinstaller

    But have not found success. Any help would be greatly appreciated.

    Continue reading...

Compartilhe esta Página