0

我们使用 Facebook 的 Fasttext 惊人的库已经有一段时间了。我们使用 python 包装器( https://pypi.org/project/fasttext/ )访问训练好的模型。它曾经是一个第三方库,但现在由 Facebook维护并合并到他们的存储库中。

问题是这两个包装器不兼容。旧的通过import fasttext(小写)导入,新的通过导入import fastText。API 也有些不同。但最重要的是,新库不支持旧 Fasttext 版本训练的模型,而旧版本支持它们,但不支持新训练的模型。

我们计划将我们所有的模型迁移到新的 Fasttext 版本(它具有量化并且据说速度更快),但是我们需要时间来支持这两种类型的模型。所以我们需要两个包装器并排工作。

将它们安装在一起的问题在于,尽管模块名称不同,它们仍试图通过 pip ( fasttext) 安装在相同的目录中。所以其中一个会覆盖另一个。

如何让他们并肩工作?最好在同一个安装前缀目录中。

4

2 回答 2

1

跨平台最可靠的方法是全局安装一个,另一个作为用户安装:

pip install git+https://github.com/facebookresearch/fastText.git
pip install --user fasttext
于 2019-04-05T18:48:15.613 回答
0

似乎唯一可行的方法就是这个安装顺序:

pip install git+https://github.com/facebookresearch/fastText.git
pip install -I fasttext

先安装新版本,再安装旧版本。-I标志告诉 pip 重新安装软件包,即使它们已经安装。否则 pip 会找到新版本并且不想安装旧版本(即使它们实际上已安装到不同的目录)。在此之后,两个版本似乎愉快地共存:

python -c "import fasttext; print fasttext.__file__"
local/lib/python2.7/site-packages/fasttext/__init__.pyc
python -c "import fastText; print fastText.__file__"
local/lib/python2.7/site-packages/fastText/__init__.pyc
于 2018-07-03T18:34:32.040 回答