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