我正在编写一个程序,用户输入文本文件的名称,并且可以通过多种方式更改文本。为了做到这一点,我需要检测文本的语言,我现在选择 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 的组合给我带来了麻烦。