错误:使用argparse时没有名为“langdetect”的模块

问题描述 投票:0回答:1

我正在编写一个程序,用户输入文本文件的名称,并且可以通过多种方式更改文本。为了做到这一点,我需要检测文本的语言,我现在选择 langDetect 因为它与 spacy 兼容。 langDetect 本身工作得很好,但我需要使用 argparse 来获取用户输入,这就是错误出现的时候。

我已经通过 pip 安装了 langdetect 并进行了以下导入:

from langdetect import detect
import langdetect

当我尝试使用 langdetect 时,它以这种方式运行得非常好:

lang1 = langdetect.detect("Hallo meine Freunde")
print(lang1)

lang2 = detect("What's up my guys")
print(lang2)

结果

de
en

但是,当我使用 argparse 在条件参数上运行代码时,python 会抛出错误“没有名为 'langdetect' 的模块”

import argparse
from langdetect import detect
import langdetect

parser = argparse.ArgumentParser()

parser.add_argument("-f", "--foo")
args = parser.parse_args()

if args.foo:
    lang1 = langdetect.detect("Hallo meine Freunde")
    print(lang1)

    lang2 = detect("What's up my guys")
    print(lang2)

通过

运行代码
python3 main.py -f

预期结果应该与上面的示例相同。

我不确定为什么它在通过 PyCharm 运行时有效,但在 argparse 中实现并通过 cmd 调用时无效。否则 argparse 也可以正常工作,只是 argparse 和 langdetect 的组合给我带来了麻烦。

python module argparse detection
1个回答
0
投票

我在colab上执行了你的代码,没有显示任何错误。

当我浏览评论时,您提到了 Python 和 Python3。我猜你一定是在Python中安装了langdetect,而不是Python3。您应该使用

pip list
pip3 list
检查已安装的库。这应该可以解决问题。

希望这有效!

© www.soinside.com 2019 - 2024. All rights reserved.