问题描述
我正在尝试安装 talos (https://github.com/autonomio/talos) 并将其导入我的 jupyter 笔记本。我在 anaconda3 上使用了“pip install talos”来安装它。一切顺利,但现在当我尝试导入 talos 时出现以下错误:
import talos
ImportError: cannot import name 'float_factorial' from 'scipy._lib._util'(C:\Users\myname\Anaconda3\lib\site-packages\scipy\_lib\_util.py)
奇怪的是,当我访问这个特定文件夹时,有一个 float_factorial 函数,所以我不清楚为什么这不起作用。可能导致此问题的原因是什么,我应该如何解决?
提前致谢!
附言我正在使用 anaconda3、scipy 1.6.1 和 talos 1.0。
解决方法
我找到了一个适合我的解决方案。转到 C:\Users\myname\Anaconda3\lib\site-packages\scipy_lib_util.py 并编辑 float_factorial 函数。 只需从这里重写它:
def float_factorial(n: int) -> float:
"""Compute the factorial and return as a float
Returns infinity when result is too large for a double
"""
return float(math.factorial(n)) if n < 171 else np.inf
为了更简单,我删除了函数注释:
def float_factorial(num):
"""Compute the factorial and return as a float
Returns infinity when result is too large for a double
"""
val = float(math.factorial(num)) if num < 171 else np.inf
return val
我想这与 Python 版本和 3.8 中的更改有关