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 环境,并允许你独立安装所需的依赖。

  1. 创建虚拟环境:
python3 -m venv venv
  1. 激活虚拟环境:
  • 在 Linux 和 macOS 上:
source venv/bin/activate
  • 在 Windows 上:
venv\Scripts\activate
  1. 安装 pyaudiosounddevice
    在虚拟环境中,你可以正常使用 pip 安装包:
pip install pyaudio sounddevice

2. 使用 pipx 安装单个包

如果你不想创建虚拟环境,可以使用 pipx 来安装和管理包。pipx 会为每个包自动创建隔离的环境。

  1. 安装 pipx
sudo apt install pipx
pipx ensurepath
  1. 使用 pipx 安装所需包:
pipx install pyaudio
pipx install sounddevice

3. 强制使用 pip(不推荐)

你可以通过 --break-system-packages 参数强制安装包,但这可能会导致系统包和 pip 包的冲突,所以 不推荐 这种方法:

pip install pyaudio sounddevice --break-system-packages

结论:

最好的解决方案是使用 虚拟环境pipx,这可以避免对系统全局环境的修改,同时保证依赖的独立性和可控性。