{"record":{"id":"b434f0366b2b900a","repo":"crewAIInc/crewAI","slug":"singlestore-package-not-found-please-run-uv-ad","errorCode":null,"errorMessage":"`singlestore` package not found, please run `uv add crewai-tools[singlestore]`","messagePattern":"`singlestore` package not found, please run `uv add crewai-tools\\[singlestore\\]`","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"lib/crewai-tools/src/crewai_tools/tools/singlestore_search_tool/singlestore_search_tool.py","lineNumber":207,"sourceCode":"            tables = []\n        if not SINGLSTORE_AVAILABLE:\n            import click\n\n            if click.confirm(\n                \"You are missing the 'singlestore' package. Would you like to install it?\"\n            ):\n                import subprocess\n\n                try:\n                    subprocess.run(\n                        [\"uv\", \"add\", \"crewai-tools[singlestore]\"],  # noqa: S607\n                        check=True,\n                    )\n\n                except subprocess.CalledProcessError as e:\n                    raise ImportError(\"Failed to install singlestore package\") from e\n            else:\n                raise ImportError(\n                    \"`singlestore` package not found, please run `uv add crewai-tools[singlestore]`\"\n                )\n\n        kwargs[\"data_type\"] = \"singlestore\"\n        super().__init__(**kwargs)\n\n        self.connection_args = {\n            \"host\": host,\n            \"user\": user,\n            \"password\": password,\n            \"port\": port,\n            \"database\": database,\n            \"driver\": driver,\n            # Connection behavior\n            \"pure_python\": pure_python,\n            \"local_infile\": local_infile,\n            \"charset\": charset,\n            # SSL/TLS settings","sourceCodeStart":189,"sourceCodeEnd":225,"githubUrl":"https://github.com/crewAIInc/crewAI/blob/754d7323beb2fd042e33444a115ea2d5a47193f0/lib/crewai-tools/src/crewai_tools/tools/singlestore_search_tool/singlestore_search_tool.py#L189-L225","documentation":"SingleStoreSearchTool raises this ImportError when the singlestore package is absent and the user answers 'no' to the click.confirm prompt offering to install it. It is the explicit opt-out path: the message tells you the exact command to run yourself (`uv add crewai-tools[singlestore]`).","triggerScenarios":"Instantiating SingleStoreSearchTool (or any subclass) in an environment lacking the singlestore package, then declining the interactive install prompt. Also triggered in non-TTY contexts where click.confirm reads a default 'no'.","commonSituations":"Automated pipelines/CI where the prompt cannot be answered and defaults to abort; users who intentionally decline the install to control their environment; docker images built without the singlestore extra.","solutions":["Install the extra in your environment: uv add 'crewai-tools[singlestore]' (or pip install 'crewai-tools[singlestore]').","For Docker/CI, add the extra to your image build step so the prompt never appears.","If the prompt is unwanted in automation, pre-install the dependency — the confirm path only triggers on ImportError."],"exampleFix":"Dockerfile:\n# before\nRUN pip install crewai-tools\n\n# after\nRUN pip install 'crewai-tools[singlestore]'","handlingStrategy":"validation","validationCode":"import importlib.util\nif importlib.util.find_spec(\"singlestore\") is None:\n    import subprocess; subprocess.run([\"pip\", \"install\", \"singlestore\"], check=True)","typeGuard":null,"tryCatchPattern":"try:\n    tool = SingleStoreSearchTool(...)\nexcept ImportError as e:\n    if \"singlestore\" in str(e):\n        # install and retry once\n        import subprocess\n        subprocess.run([\"pip\", \"install\", \"crewai-tools[singlestore]\"], check=True)\n        tool = SingleStoreSearchTool(...)","preventionTips":["Declare the singlestore extra in your dependency manifest instead of relying on runtime prompts.","Avoid running dependency-prompting tools in non-interactive shells."],"tags":["singlestore","dependency","installation","opt-out"],"backgroundTag":null,"analyzedSha":"754d7323beb2fd042e33444a115ea2d5a47193f0","analyzedAt":"2026-08-15T04:06:56.746Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}