无法找到模块,即使它已安装并且可以 运行
Cant find module even though its installed and can run
我研究了 Python 的语音识别功能,到目前为止效果很好。
它提供了广泛的软件,但我将使用 CMUSphinx
,因为它可以离线工作。
CMUSphinx
在通过他们自己的程序 cmupshinx_continous
启动时已安装并正常工作。但是当尝试编写我自己的 Python-脚本时,它找不到模块 speech_recognition
。这很奇怪,因为当我 运行:
python -m speech_recognition
它工作得很好。但是当我开始我的脚本时:
import speech_recognition as sr
# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
# recognize speech using Sphinx
try:
print("Sphinx thinks you said " + r.recognize_sphinx(audio))
except sr.UnknownValueError:
print("Sphinx could not understand audio")
except sr.RequestError as e:
print("Sphinx error; {0}".format(e))
我收到模块的错误消息:speech_recognition
无法找到。
使用时
pip install SpeechRecognition
我第一次使用 sudo pip install
但当它不起作用时我想可能是因为我将它安装在 root 中。所以我卸载了它并使用 pip install --user SpeechRecognition
而不是无济于事。
我也尝试用 PYTHONPATH
添加一些东西,但我不知道我尝试做什么。
所以现在我很困惑。请记住,我对 Linux 和 Python 都非常陌生。
有什么我可以尝试的想法吗?
看起来该软件包已安装在其他版本的 python 中。
尝试输入 sudo python -m pip install SpeechRecognition
它对我有用。如果不是最好的办法是:
- 转到repo
- 克隆它
- 安装它
在继续之前尝试第一种方法。
几乎总是当你可以从一个点访问一个模块但不能从另一个点访问时(想想 script/program、terminal/editor、...)你有多个 python 版本并且只安装其中之一的模块。
在您的情况下,IDLE 使用与您在终端上不同的 python 版本。你有多种可能性:
- 配置 IDLE 以使用您在终端上使用的版本
- 使用 IDLE 使用的版本(并重新安装所有模块)
- 不要使用 IDLE 来 运行 您的脚本,而是使用
python myscript.py
你提到IDLE是python3,一般在终端python
是python2。您可以尝试 python --version
来显示您使用的 python 版本。 python3
可能是您在 IDLE 中使用的 python,pip 可能是 pip3
.
因为库确实支持 python3 我建议使用 python3 而不是 python2。
不幸的是,IDLE 不是一个很好的编辑器,我推荐其他东西,比如 notepad++、pycharm、vim 或 emacs。
我研究了 Python 的语音识别功能,到目前为止效果很好。
它提供了广泛的软件,但我将使用 CMUSphinx
,因为它可以离线工作。
CMUSphinx
在通过他们自己的程序 cmupshinx_continous
启动时已安装并正常工作。但是当尝试编写我自己的 Python-脚本时,它找不到模块 speech_recognition
。这很奇怪,因为当我 运行:
python -m speech_recognition
它工作得很好。但是当我开始我的脚本时:
import speech_recognition as sr
# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
# recognize speech using Sphinx
try:
print("Sphinx thinks you said " + r.recognize_sphinx(audio))
except sr.UnknownValueError:
print("Sphinx could not understand audio")
except sr.RequestError as e:
print("Sphinx error; {0}".format(e))
我收到模块的错误消息:speech_recognition
无法找到。
使用时
pip install SpeechRecognition
我第一次使用 sudo pip install
但当它不起作用时我想可能是因为我将它安装在 root 中。所以我卸载了它并使用 pip install --user SpeechRecognition
而不是无济于事。
我也尝试用 PYTHONPATH
添加一些东西,但我不知道我尝试做什么。
所以现在我很困惑。请记住,我对 Linux 和 Python 都非常陌生。
有什么我可以尝试的想法吗?
看起来该软件包已安装在其他版本的 python 中。
尝试输入 sudo python -m pip install SpeechRecognition
它对我有用。如果不是最好的办法是:
- 转到repo
- 克隆它
- 安装它
在继续之前尝试第一种方法。
几乎总是当你可以从一个点访问一个模块但不能从另一个点访问时(想想 script/program、terminal/editor、...)你有多个 python 版本并且只安装其中之一的模块。
在您的情况下,IDLE 使用与您在终端上不同的 python 版本。你有多种可能性:
- 配置 IDLE 以使用您在终端上使用的版本
- 使用 IDLE 使用的版本(并重新安装所有模块)
- 不要使用 IDLE 来 运行 您的脚本,而是使用
python myscript.py
你提到IDLE是python3,一般在终端python
是python2。您可以尝试 python --version
来显示您使用的 python 版本。 python3
可能是您在 IDLE 中使用的 python,pip 可能是 pip3
.
因为库确实支持 python3 我建议使用 python3 而不是 python2。
不幸的是,IDLE 不是一个很好的编辑器,我推荐其他东西,比如 notepad++、pycharm、vim 或 emacs。