Skip to main content
 首页 » 编程设计

python之ModuleNotFoundError:没有名为 '...' 的模块

2025年05月04日17myhome

我已经使用 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\3.7 )。
  • Python 工具,例如 pip , pylint , virtualenv , PyCrust等,安装在<PYTHON_INSTALL_DIR>\Scripts .
  • 适用于 Windows 的 Python 启动器,py.exe , 安装在您的 Windows 系统目录中(例如 C:\Windows )。
  • python和 pip命令使用在其安装目录中找到的模块,它们不查看 PATH。

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

C:\Python\2.7 
C:\Python\3.6 
C:\Python\3.7 

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

C:\Python\2.7 
C:\Python\3.6\Scripts 

然后,查看以下输出:

C:\>python -V 
Python 2.7.16 
 
C:\>pip -V 
pip 19.1.1 from c:\python\3.6\lib\site-packages\pip (python 3.6) 
 
C:\>py -V 
Python 3.7.3 

所以,当运行 pip ,这些包可能安装在另一个 Python 版本中,然后是您在运行时获得的版本 python .

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

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

通用解决方案(适用于 Windows)

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

pip install <package> 

运行:

py -3.6 -m pip install <package> 

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

py -3.6 -m pip freeze 

一些补充说明

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