我已经使用input1.merge(df_grouped.to_frame(), left_on=['Week/Year', 'ID'], right_index=True)
安装了pyaudio模块。但是,当我尝试导入它时,Python说找不到该模块:
areTimestampsInSnapshotsEnabled
pip
为什么Python无法找到已安装的模块?
答案 0 :(得分:5)
经常发生某人使用pip
安装Python软件包,但似乎无法将其导入Python的情况。要了解为什么会发生这种情况,您必须知道Windows如何找到要运行的可执行文件,以及如何安装Python软件。基础知识:
python.exe
安装在<PYTHON_INSTALL_DIR>
中(例如C:\Python\3.7
)。pip
中安装了Python工具,例如pylint
,virtualenv
,PyCrust
,<PYTHON_INSTALL_DIR>\Scripts
等。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)
最好的是不要依赖您的系统PATH。使用py
启动器选择所需的版本。要运行与您要使用的Python版本相对应的pip
模块,请将pip
作为模块而不是可执行文件启动。
所以代替:
pip install <package>
运行:
py -3.6 -m pip install <package>
要查看为该Python版本安装了哪些Python软件包,请使用:
py -3.6 -m pip freeze
一些补充说明
py
命令也将始终可用。test.py
)作为命令键入文件名,则该操作将由Windows注册表确定。该文件可能会在您的IDE中打开,或者使用Python解释器执行。在这种情况下,它可能是最新安装的Python版本。命令python test.py
使用的Python版本可能不同于命令test.py
。python2
/ python3
的可执行文件(不适用于Windows),pip3
/ pip3.7
(也适用于Windows)等。这也将允许您指定要使用的版本。这些将在存在这些二进制文件且位于路径中的系统上很有用。答案 1 :(得分:1)
您可能认为 python -m pip install pyaudio
会解决问题,但事实并非如此。
要安装 pyaudio,您首先需要使用以下命令安装 pipwin:
pip install pipwin
pipwin 是 Windows 上 pip 的补充工具。 pipwin 安装非官方的 python 包。
接下来使用pipwin安装pyaudio,
pipwin install pyaudio