出现 externally-managed-environment
错误的原因是你的操作系统或 Python 环境开启了 PEP 668 保护机制。即使你创建了新的 conda
虚拟环境,系统仍然标记该环境为“外部管理的”,不允许直接通过 pip
安装包。这是为了保护系统级的 Python 环境不被破坏。
解决方案:
1. 使用 --break-system-packages
你可以通过添加 --break-system-packages
参数强制 pip
安装包。这将绕过 PEP 668 保护机制,但要谨慎使用,因为可能会影响系统或虚拟环境的稳定性。
pip install pymilvus jina --break-system-packages
2. 使用 conda install
安装包
优先使用 conda
来安装包,这样不会触发 externally-managed-environment
错误。你可以尝试通过 conda-forge
频道来安装包:
conda install -c conda-forge pymilvus jina
3. 创建一个不受 PEP 668 管理的虚拟环境
你可以通过 venv
创建一个完全独立于系统管理的虚拟环境。这样做可以避开 PEP 668 机制。
# 创建 venv 虚拟环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 安装所需包
pip install pymilvus jina
总结
- 推荐做法:首先使用
conda-forge
来安装包。 - 强制方式:使用
--break-system-packages
绕过保护机制。 - 隔离方式:使用
venv
创建完全隔离的虚拟环境来避开系统保护。