shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddevice
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$
这个错误是因为你的系统启用了 PEP 668 的限制,导致你的 Python 环境被标记为 “externally-managed-environment”,即它被外部管理,不能使用 pip
在全局 Python 环境中安装包。这种机制的目的是避免 pip
和系统包管理器(如 apt
)之间的冲突,防止对系统级 Python 依赖的破坏。
解决方案:
你有几种方式可以解决这个问题:
1. 使用虚拟环境
虚拟环境可以避免修改全局 Python 环境,并允许你独立安装所需的依赖。
- 创建虚拟环境:
python3 -m venv venv
- 激活虚拟环境:
- 在 Linux 和 macOS 上:
source venv/bin/activate
- 在 Windows 上:
venv\Scripts\activate
- 安装
pyaudio
和sounddevice
:
在虚拟环境中,你可以正常使用pip
安装包:
pip install pyaudio sounddevice
2. 使用 pipx
安装单个包
如果你不想创建虚拟环境,可以使用 pipx
来安装和管理包。pipx
会为每个包自动创建隔离的环境。
- 安装
pipx
:
sudo apt install pipx
pipx ensurepath
- 使用
pipx
安装所需包:
pipx install pyaudio
pipx install sounddevice
3. 强制使用 pip
(不推荐)
你可以通过 --break-system-packages
参数强制安装包,但这可能会导致系统包和 pip
包的冲突,所以 不推荐 这种方法:
pip install pyaudio sounddevice --break-system-packages
结论:
最好的解决方案是使用 虚拟环境 或 pipx,这可以避免对系统全局环境的修改,同时保证依赖的独立性和可控性。