pip install 安装traj_dist库失败
问题:
数据预处理报错:安装traj_dist报一大串错误,说是double、int之间转换有问题,具体为:traj_dist\cydist\frechet.pyx:535:21: Cannot assign type 'double' to 'int'
原因分析:
- 代码中 m_i=len(cc)/2-1,len(cc)/2 结果是 float(即 Cython 的 double),但 m_i 变量类型是 int,Cython 不允许直接将 double 赋值给 int。
- 这是 Cython 语法的严格类型检查导致的。
解决方法:
通过https://github.com/bguillouet/traj-dist安装(直接pip安装也行,主要难点是ctrl点击跳转到frechet.pyx文件)
修改源码
找到 traj_dist/cydist/frechet.pyx 文件第 535 行,将m_i = len(cc)/2-1
改为m_i = int(len(cc) / 2 - 1),重新安装即可解决。
已安装的conda环境:traj_conn_py3.9
安装的错误总结:https://github.com/bguillouet/traj-dist/issues/28
发现python3.9通过github安装正常,但是3.8报错,然后检查依赖库也都满足,但是按照pip install .报错,解决方法是在github的traj-dist项目中用pip install traj-dist即可安装。
报错:ModuleNotFoundError: No module named 'basic_euclidean'
解决方法:https://github.com/bguillouet/traj-dist/issues/28
替换import按照上面链接,然后执行在github中:
python setup.py build_ext --inplace
python setup.py install。提示安装Finished processing dependencies for traj-dist==1.1。说明成功了。
下面这个安装traj-dist成功。(还有conda环境:trajcl也安装成功)
安装成功,没有提示横线。