ModuleNotFoundError:没有名为‘…’的模块
- 2025-03-26 09:09:00
- admin 原创
- 22
问题描述:
我已经使用 安装了模块 pyaudio pip
。但是,当我尝试导入它时,Python 说未找到该模块:
C:Usershp>pip install pyaudio
Requirement already satisfied: pyaudio in c:/usershpappdatalocalprogramspythonpython37libsite-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。)
解决方案 1:
经常有人使用 安装 Python 包pip
,但似乎无法在 Python 中导入它。要了解为什么会发生这种情况,您必须知道 Windows 如何找到要运行的可执行文件,以及 Python 软件是如何安装的。基础知识:
运行命令时,Windows 会在环境变量 PATH 中搜索可执行文件。它会执行找到的第一个文件。
Python 解释器
python.exe
安装在<PYTHON_INSTALL_DIR>
(例如C:Python.7
)。Python 工具(例如
pip
、pylint
、virtualenv
、PyCrust
等)安装在 中<PYTHON_INSTALL_DIR>Scripts
。Windows 的 Python 启动器
py.exe
安装在您的 Windows 系统目录中(例如C:Windows
)。python
和pip
命令使用在其安装目录中找到的模块,它们不查看 PATH。
假设您有以下 Python 版本:
C:Python.7
C:Python.6
C:Python.7
并且您的 PATH 环境包含以下目录:
C:Python.7
C:Python.6Scripts
然后,看到以下输出:
C:>python -V
Python 2.7.16
C:>pip -V
pip 19.1.1 from c:python.6libsite-packagespip (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.7-64python.exe *
-3.7-32 C:Python.7-32python.exe
-3.6-64 C:Python.6-64python.exe
-2.7-64 C:Python.7-64python.exe
-2.7-32 C:Python.7-32python.exe
通用解决方案(适用于 Windows)
最好的办法是不要依赖系统 PATH。使用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
使用与命令 不同的 Python 版本test.py
。一些安装还包括名为
python2
/python3
(不在 Windows 上)、pip3
/pip3.7
(也在 Windows 上)等的可执行文件。这还允许您指定要使用的版本。这些对于存在这些二进制文件且位于路径中的系统很有用。
解决方案 2:
您可能会认为python -m pip install pyaudio
这会解决问题,但事实并非如此。
要安装 pyaudio,首先需要使用以下命令安装 pipwin:
pip install pipwin
pipwin 是 Windows 上 pip 的补充工具。pipwin 安装非官方的 python 包。
接下来使用 pipwin 安装 pyaudio,
pipwin install pyaudio