ModuleNotFoundError: No module named 'pyaudio' (Windows)

ModuleNotFoundError: No module named 'pyaudio' (Windows)

我已经使用 pip 安装了模块 pyaudio。但是,当我尝试导入它时,Python 说找不到模块:

C:\Users\hp>pip install pyaudio
Requirement already satisfied: pyaudio in c:\users\hp\appdata\local\programs\python\python37\lib\site-packages (0.2.11)
>>> import pyaudio
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pyaudio'

为什么Python找不到安装的模块?

(我正在使用 Python 3.7。)

经常发生有人使用 pip 安装 Python 包,但似乎无法在 Python 中导入它。要理解为什么会发生这种情况,您必须知道 Windows 如何找到 运行 的可执行文件,以及 Python 软件是如何安装的。基础知识:

  • 当运行执行命令时,Windows在环境变量PATH中搜索可执行文件。它执行找到的第一个。
  • Python 解释器 python.exe 安装在 <PYTHON_INSTALL_DIR> 中(例如 C:\Python.7)。
  • PythonpippylintvirtualenvPyCrust等工具,安装在<PYTHON_INSTALL_DIR>\Scripts.
  • Windows、py.exe 的 Python 启动器安装在您的 Windows 系统目录中(例如 C:\Windows)。
  • pythonpip 命令使用在其安装目录中找到的模块,它们不查看 PATH。

那么,假设您有以下 Python 个版本:

C:\Python.7
C:\Python.6
C:\Python.7

并且您的 PATH 环境包含以下目录:

C:\Python.7
C:\Python.6\Scripts

然后,查看以下输出:

C:\>python -V
Python 2.7.16

C:\>pip -V
pip 19.1.1 from c:\python.6\lib\site-packages\pip (python 3.6)

C:\>py -V
Python 3.7.3

因此,当 运行ning pip 时,这些软件包可能安装在另一个 Python 版本中,然后是 运行ning 时您将获得的版本python.

要查看您的系统上(正确)安装了哪些版本,运行 py -0p。示例输出:

C:\>py -0p
Installed Pythons found by py Launcher for Windows
 -3.7-64        C:\Python.7-64\python.exe *
 -3.7-32        C:\Python.7-32\python.exe
 -3.6-64        C:\Python.6-64\python.exe
 -2.7-64        C:\Python.7-64\python.exe
 -2.7-32        C:\Python.7-32\python.exe

一般解(for Windows)

最好不要依赖你的系统路径。使用 py 启动器 select 您想要的版本。要 运行 与您要使用的 Python 版本相对应的 pip 模块,请将 pip 作为模块而不是可执行文件启动。 所以而不是:

pip install <package>

运行:

py -3.6 -m pip install <package>

要查看您为该 Python 版本安装了哪些 Python 软件包,请使用:

py -3.6 -m pip freeze

一些补充说明

  • 是否将 Python 安装添加到您的 PATH 中,是安装过程中的一个选项。如果添加,则添加在 PATH 的开头,因此最近安装的 Python 版本将首先 selected。
  • Windows 系统目录应该始终在您的 PATH 中,因此 py 命令将始终可用,即使您没有将任何 Python 安装添加到您的 PATH 中。
  • 如果您 double-click 来自 Windows 资源管理器的 .py 文件,或在命令提示符中直接键入文件名作为命令(例如 test.py),则操作是从 Windows 注册表中确定。文件可能会在您的 IDE 中打开,或者使用 Python 解释器执行。在那种情况下,它可能是最近安装的 Python 版本。命令 python test.py 可能使用与命令 test.py.
  • 不同的 Python 版本
  • 一些安装还包括名为 python2/python3(不在 Windows)、pip3/pip3.7(也在 Windows), 等等。这也将允许您指定要使用的版本。这些对于存在这些二进制文件并位于路径中的系统很有用。

您认为 python -m pip install pyaudio 会解决问题,但事实并非如此。

要安装 pyaudio,您首先需要使用以下方法安装 pipwin:

pip install pipwin

pipwin 是 Windows 上 pip 的补充工具。 pipwin 安装非官方 python 包。

接下来使用pipwin安装pyaudio,

pipwin install pyaudio