我们使用Facebook的Fasttext令人惊叹的库已有一段时间了。我们使用python包装器(https://pypi.org/project/fasttext/)访问训练有素的模型。它曾经是一个第三方库,但是现在由Facebook maintained合并到其repository中。
问题是两个包装器不兼容。旧版本通过import fasttext
(小写)导入,新版本通过import fastText
导入。 API也有所不同。但最重要的是,新库不支持由较早的Fasttext版本训练的模型,而旧库则支持它们,但不支持新训练的模型。
我们正计划将所有模型迁移到新的Fasttext版本(具有量化功能,并且据说速度更快),但是在此期间我们需要支持两种类型的模型。因此,我们需要两个包装器并排工作。
将它们安装在一起的问题是,尽管模块名称不同,但它们仍尝试通过pip(fasttext
)安装在相同的目录中。因此,其中一个覆盖另一个。
如何使它们并排工作?最好在同一安装前缀目录中。
答案 0 :(得分:1)
跨平台最可靠的方法是全局安装,另一用户安装:
pip install git+https://github.com/facebookresearch/fastText.git
pip install --user fasttext
答案 1 :(得分: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