首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModuleNotFoundError:没有名为'pyaudio‘的模块(Windows)

问ModuleNotFoundError:没有名为'pyaudio‘的模块(Windows)
EN

Stack Overflow用户
提问于 2019-06-05 02:10:54
回答 2查看 15.1K关注 0票数 5

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

代码语言:javascript
复制
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)
代码语言:javascript
复制
>>> import pyaudio
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pyaudio'

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

(我使用的是Python 3.7。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-05 05:30:23

经常会发生这样的情况:有人使用pip安装了Python包,但似乎无法将其导入到Python中。要了解发生这种情况的原因,您必须了解Windows如何查找要运行的可执行文件,以及如何安装Python软件。基础知识:

  • 运行命令时,将在环境变量PATH中搜索可执行文件。<PYTHON_INSTALL_DIR>\Scripts.
  • The Python launcher
  • python.exe安装在您的<PYTHON_INSTALL_DIR>系统目录下(例如pip和<pip>d22>命令使用其安装目录中的模块,它们不会查看路径。

因此,假设您有以下Python版本:

代码语言:javascript
复制
C:\Python\2.7
C:\Python\3.6
C:\Python\3.7

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

代码语言:javascript
复制
C:\Python\2.7
C:\Python\3.6\Scripts

然后,请参见以下输出:

代码语言:javascript
复制
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。输出示例:

代码语言:javascript
复制
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启动器选择所需的版本。要运行与您想要使用的Python版本对应的pip模块,请将pip作为模块而不是可执行文件启动。因此,不是:

代码语言:javascript
复制
pip install <package>

运行:

代码语言:javascript
复制
py -3.6 -m pip install <package>

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

代码语言:javascript
复制
py -3.6 -m pip freeze

一些附加备注

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

Stack Overflow用户

发布于 2021-01-05 19:59:07

你可能认为python -m pip install pyaudio会解决这个问题,但事实并非如此。

要安装pyaudio,首先需要使用以下命令安装pipwin:

代码语言:javascript
复制
pip install pipwin

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

接下来,使用pipwin安装pyaudio。

代码语言:javascript
复制
pipwin install pyaudio
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56449253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档