---
title: "pymilvus"
type: "tool"
slug: "milvus-io-pymilvus"
canonical_url: "https://www.graphcanon.com/tools/milvus-io-pymilvus"
github_url: "https://github.com/milvus-io/pymilvus"
homepage_url: null
stars: 1400
forks: 433
primary_language: "Python"
license: "Apache-2.0"
categories: ["vector-databases", "developer-tools"]
tags: ["anns", "vector-database", "python-sdk", "milvus", "faiss"]
updated_at: "2026-07-07T18:46:47.446686+00:00"
---

# pymilvus

> Python SDK for Milvus Vector Database

Provides Python bindings to interact with the Milvus vector database, facilitating operations such as indexing and querying high-dimensional vectors.

## Facts

- Repository: https://github.com/milvus-io/pymilvus
- Stars: 1,400 · Forks: 433 · Open issues: 393 · Watchers: 16
- Primary language: Python
- License: Apache-2.0
- Last pushed: 2026-07-07T09:06:29+00:00

## Categories

- [Vector Databases](/categories/vector-databases.md)
- [Developer Tools](/categories/developer-tools.md)

## Tags

anns, vector-database, python-sdk, milvus, faiss

## Related tools

- [ECC](/tools/affaan-m-ecc.md) - The agent harness performance optimization system (★ 226,962)
- [AutoGPT](/tools/significant-gravitas-autogpt.md) - AutoGPT: Build, Deploy, and Run AI Agents (★ 185,417)
- [prompts.chat](/tools/f-prompts-chat.md) - The world's largest open-source prompt library for AI (★ 165,019)
- [JavaGuide](/tools/snailclimb-javaguide.md) - Snailclimb/JavaGuide: 面试 & 后端通用面试指南，覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发 (★ 156,863)
- [browser-use](/tools/browser-use-browser-use.md) - 🌐 Make websites accessible for AI agents. Automate tasks online with ease. (★ 103,315)
- [caveman](/tools/juliusbrussee-caveman.md) - Cuts 65% of tokens in AI coding agent responses. (★ 86,150)
- [llm-course](/tools/mlabonne-llm-course.md) - Course to get into Large Language Models (LLMs) with roadmaps and Colab notebooks. (★ 80,726)
- [OpenHands](/tools/openhands-openhands.md) - The self-hosted developer control center for coding agents and automations. (★ 79,805)

## README (excerpt)

```text
# Milvus Python SDK










Python SDK for [Milvus](https://github.com/milvus-io/milvus). To contribute code to this project, please read our [contribution guidelines](https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md) first. If you have some ideas or encounter a problem, you can find us in the Slack channel [#py-milvus](https://milvusio.slack.com/archives/C024XTWMT4L).


## Compatibility
The following collection shows Milvus versions and recommended PyMilvus versions:

|Milvus version| Recommended PyMilvus version |
|:-----:|:-----:|
| 1.0.\* | 1.0.1 |
| 1.1.\* | 1.1.2 |
| 2.0.\* | 2.0.2 |
| 2.1.\* | 2.1.3 |
| 2.2.\* | 2.2.15 |
| 2.3.\* | 2.3.7 |
| 2.4.\* | 2.4.X |
| 2.5.\* | 2.5.X |
| 2.6.\* | 2.6.X |


## Installation

You can install PyMilvus via `pip` or `pip3` for Python 3.8+:

```shell
$ pip3 install pymilvus
$ pip3 install pymilvus[model] # for milvus-model
$ pip3 install pymilvus[bulk_writer] # for bulk_writer
```

You can install a specific version of PyMilvus by:

```shell
$ pip3 install pymilvus==2.4.10
```

You can upgrade PyMilvus to the latest version by:

```shell
$ pip3 install --upgrade pymilvus
```

## FAQ
Local development commands use [uv](https://docs.astral.sh/uv/). Install uv before running the
`make` targets below.

Q1. How to get submodules?

A1. The following command will get the protos matching to the generated files, for protos of certain version, see
[milvus-proto](https://github.com/milvus-io/milvus-proto#usage) for details.
```shell
$ git submodule update --init
```

Q2. How to generate python files from milvus-proto?

A2.
```shell
$ make gen_proto
```

Q3. How to use the local PyMilvus repository for Milvus server?

A3.
```shell
$ make install
```

Q4. How to check and auto-fix the coding styles?

A4.
```shell
make lint
make format
```

Q5. How to set up pre-commit hooks to automatically check and fix the coding styles?

Once installed, the hooks will automatically run `make format` and `make lint` before each commit. If the checks fail, the commit will be aborted, and you'll need to fix the issues before committing again.

A5. Pre-commit hooks help ensure code quality by automatically running linting and formatting checks before each commit.
```shell
# Install pre-commit (if not already installed)
$ uv tool install pre-commit

# Install the git hook scripts
$ pre-commit install
```

Q7. How to run the maintained test suites?

A7
```shell
$ uv sync --group dev
$ make unittest
$ make integration-lite
```

Q8. `zsh: no matches found: pymilvus[model]`, how do I solve this?

A8
```shell
$ pip install "pymilvus[model]"
```

## Documentation

Documentation is available online: https://milvus.io/api-reference/pymilvus/v2.6.x/About.md

## Developing package releases

The commits on the development branch of each version will be packaged and uploaded to [Test PyPI](https://test.pypi.org/).

The package name generated by the development branch is x.y.z.rc<dist>, where <dist> is the number of commits that differ from the most recent release.

- For example, after the release of **2.3.4**, two commits were submitted on the 2.3 branch.
The version number of the latest commit of 2.3 branch is **2.3.5.rc2**.

- For example, after the release of **2.3.4**, 10 commits were submitted on the master branch.
The version number of the latest commit of master branch is **2.4.0.rc10**.


To install the package on Test PyPi, you need to append `--extra-index-url` after pip, for example:
```shell
$ python3 -m pip install --extra-index-url https://test.pypi.org/simple/ pymilvus==2.1.0.dev66
```


## License
[Apache License 2.0](LICENSE)
```

---

**Machine-readable endpoints**

- JSON: [`/api/graphcanon/tools/milvus-io-pymilvus`](/api/graphcanon/tools/milvus-io-pymilvus)
- LLM index: [/llms.txt](/llms.txt)
- Full corpus: [/llms-full.txt](/llms-full.txt)

_GraphCanon - The knowledge graph for AI development. https://www.graphcanon.com/_
