安装 dtaidistance -> 异常:已编译的 dtaidistance C 库不可用

Adl*_*ler 5 python numpy dtw

我尝试运行 dtaidistance 但根据示例运行以下代码时:

from dtaidistance import dtw
import numpy as np
timeseries = np.array([
     [0., 0, 1, 2, 1, 0, 1, 0, 0],
     [0., 1, 2, 0, 0, 0, 0, 0, 0],
     [1., 2, 0, 0, 0, 0, 0, 1, 1],
     [0., 0, 1, 2, 1, 0, 1, 0, 0],
     [0., 1, 2, 0, 0, 0, 0, 0, 0],
     [1., 2, 0, 0, 0, 0, 0, 1, 1]])
ds = dtw.distance_matrix_fast(timeseries, block=((1, 4), (3, 5)))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The compiled dtaidistance C library is not available.
See the documentation for alternative installation options.
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的 IDE(Jupyter Notebook、PyCharm、Visual Studio Code)、不同的笔记本电脑、旧版本的 dtaidistance,..

是否可以在 Windows 上安装该库?-.-

我尝试根据以下内容进行故障排除:https ://dtaidistance.readthedocs.io/en/latest/usage/installation.html

我按照以下方式尝试了一切:

然而,这些都没有成功。我需要这个图书馆..

运行 dtw.try_import_c() 时,我得到以下输出:

Cannot import OMP-based library (dtw_cc_omp)
Cannot import Numpy-based library (dtw_cc_numpy)

Not all libraries are available in your installation. Share the following information when submitting a bug report:
- Cannot import OMP-based library (dtw_cc_omp)
- cannot import name 'dtw_cc_omp' from 'dtaidistance' (C:\Users\admin\anaconda3\lib\site-packages\dtaidistance\__init__.py)
- Cannot import Numpy-based library (dtw_cc_numpy)
- cannot import name 'dtw_cc_numpy' from 'dtaidistance' (C:\Users\admin\anaconda3\lib\site-packages\dtaidistance\__init__.py)
- System information:
  namespace(cache_tag='cpython-38', hexversion=50857456, name='cpython', version=sys.version_info(major=3, minor=8, micro=5, releaselevel='final', serial=0))
Additionally, you can rerun the compilation from source or pip install in verbose mode:
pip install -vvv --upgrade --force-reinstall --no-deps --no-binary :all: dtaidistance
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?多谢!

Phu*_*hun 1

我遇到了类似的问题,这就是我解决它们的方法。

  1. 确保/site_packages之前的安装尝试中没有与 dtaidistance 相关的文件夹。
  2. 按照https://dtaidistance.readthedocs.io/en/latest/usage/installation.html并从源代码编译包。如果 OpenMP 不可用,请安装gcc并使用该--forcegnugcc参数。
  3. 构建包后/dtaidistance 手动将文件夹复制到该/site_packages文件夹​​中。这一步很重要:奇怪的是,使用python setup.py install对我不起作用。

这些步骤已使用版本 2.3.2 进行测试。