【问题标题】:Cant find module even though its installed and can run即使已安装并且可以运行,也找不到模块
【发布时间】:2016-11-16 12:24:03
【问题描述】:

我研究了 Python 的语音识别,到目前为止它运行良好。 它提供了广泛的软件,但我将使用CMUSphinx,因为它可以离线工作。 通过自己的程序cmupshinx_continous 启动时,CMUSphinx 已安装并正常工作。但是在尝试编写我自己的 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,但当它不起作用时,我认为可能是因为我将它安装在根目录下。所以我卸载了它并使用pip install --user SpeechRecognition 无济于事。 我也尝试用PYTHONPATH 添加一些东西,但我不知道我想做什么。

所以现在我很困。请记住,我对 Linux 和 Python 都非常陌生。

关于我可以尝试什么的任何想法?

【问题讨论】:

  • 你如何执行你的脚本?
  • 尝试先在终端输入>>> import speech_recognition as sr
  • @syntonym 我在python3 IDLE中编写代码并执行。
  • @GaneshK 在终端中写入 import speech_recognition as sr 不会给出错误消息,因此应该是正确的。对吗?
  • IDLE 使用的 Python 版本与您键入 python 时使用的 Python 版本不同。要么将 IDLE 更改为终端版本,要么找出 IDLE 使用的 python 版本并使用它(可能是python3)。或者只是放弃 IDLE 并通过 python myscript.py 执行您的脚本。

标签: python linux pip speech-recognition cmusphinx


【解决方案1】:

几乎总是当您可以从一个点访问一个模块但不能从另一个点访问时(想想脚本/程序、终端/编辑器等),您有多个 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。

【讨论】:

    【解决方案2】:

    该软件包似乎安装在其他版本的 python 中。

    尝试输入sudo python -m pip install SpeechRecognition

    它对我有用。如果不是最好的做法是:

    1. 转到repo
    2. 克隆它
    3. 安装它

    在继续之前尝试第一种方法。

    【讨论】:

    • 我也试过了,但也没有用。我认为问题不在于 SpeechRecognition 是否正确安装,因为它在终端中工作。
    猜你喜欢
    • 2020-01-19
    • 2019-10-02
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多