python - 如何在 Windows 10 上安装和使用 Pynini?

标签 python windows-10 openfst pynini

OpenGrm Pynini 是一个由 K.Gorman 开发的开源有限状态传感器 Python 库,可在此处下载:http://www.openfst.org/twiki/bin/view/GRM/Pynini

我希望能够使用最新的 Pynini 版本 2.0.8 在我的 Windows 10 笔记本电脑上使用 PyCharm/IntelliJ 进行开发。问题是 Pynini 依赖于 C++ OpenFST 1.7.3显然,在 Windows 上构建存在一些问题。

到目前为止我找到的解决方案或解决方法是:

但是有没有其他简单的方法可以像使用 Debian for Windows Subsystem for Linux (WSL) 一样工作?

最佳答案

所以,我花了一些时间尝试实现这一目标,我发现这个设置效果非常好,因此我决定将其发布在这里,以防它可以帮助某人。 与 PyCharm(专业版)的集成效果非常好,您不需要任何 Linux 盒子、shell 或 ssh 隧道。 PyCharm 可以看到您的 WSL 实例,它会自动启动它,并在您运行脚本时调用您的 python 解释器。

以下是我为完成设置而执行的所有步骤:

安装 Debian WSL

Microsoft Store 安装并设置 Debian 实例

然后根据 Pynini 自述文件,这是我们需要的:

  • 海湾合作委员会 > 4.8
  • 使用 ./configure --enable-grm 和 header 构建 OpenFST 1.7.3
  • Python 版本:2.7 或 3.6+ 以及 header

安装 GCC

sudo apt update && sudo apt -y upgrade
sudo apt install build-essential       # to install GCC and others build libs and tools

安装 OpenFST

我们需要安装wget才能下载openfst和pynini。

sudo apt install wget                        
cd /usr/local/src 
sudo wget http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.7.3.tar.gz
sudo tar -xvf openfst-1.7.3.tar.gz && sudo chown -R root:root openfst-1.7.3
cd openfst-1.7.3 && sudo ./configure --enable-grm
sudo make && sudo make install

安装 Pynini

首先我们需要安装Python

sudo apt install python3 python3-dev python3-pip python3-venv

然后下载并构建Pynini;抱歉,我沉迷于虚拟环境:

  • python3 -m venv ~/venv373; 。 〜/venv373/bin/activate;
  • cd/usr/local/src
  • sudo wget http://www.opengrm.org/twiki/pub/GRM/PyniniDownload/pynini-2.0.8.tar.gz
  • sudo tar -xvf pynini-2.0.8.tar.gz && sudo chown -R 1000:1000 pynini-2.0.8
  • cd/usr/local/src/pynini-2.0.8
  • sudo env PATH='$PATH'; python setup.py install;

就是这样,Pynini 应该已安装。

PyCharm 集成

请注意,与 WSL 的集成仅适用于 PyCharm/IntelliJ Professional 版本。

以下是有关如何在 PyCharm 中添加 WSL python 解释器的链接:https://www.jetbrains.com/help/pycharm/using-wsl-as-a-remote-interpreter.html

我的 IntelliJ 的一张屏幕截图,您可以在其中看到 import pynini 语句已被识别,并且自动完成功能也能正常工作。

IntelliJ screenshot

关于python - 如何在 Windows 10 上安装和使用 Pynini?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898360/

相关文章:

用于转换的 Openfst fstcompose

python 多线程

python - 设置 PySpark

python - 更改列表中的值 - python

elasticsearch - _JAVA_OPTIONS未设置-Xmx

c# - Windows 10 Microsoft Advertising SDK 与 Windows 8.1 兼容吗?

c++ - 为 iOS 编译 OpenFST 时出现转换错误

python - Pandas 用字典中的值替换部分字符串

postgresql - 如何在 Windows 10 上设置 Postgres 路径变量

C++/OpenFST - 查找库和链接时出错