我刚刚在 Python 0.9 64b 中将 lmfit 包更新到版本 2.7 64b,并且在创建新的参数对象时引发以下错误(即p = lmfit.Parameters()
(:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:Python27_64blibsite-packageslmfitparameter.py", line 65, in __init__
super(Parameters, self).__init__(self)
File "C:Python27_64blibcollections.py", line 48, in __init__
self.update(*args, **kwds)
File "C:Python27_64blibsite-packageslmfitparameter.py", line 87, in update
for sym in other._asteval.user_defined_symbols():
AttributeError: 'Parameters' object has no attribute '_asteval'
我刚刚从链接中尝试了此示例:
import numpy as np
import lmfit
def double_exp(x, a1, t1, a2, t2):
return a1*np.exp(-x/t1) + a2*np.exp(-(x-0.1) / t2)
model = lmfit.Model(double_exp)
truths = (3.0, 2.0, -5.0, 10.0)
x = np.linspace(1, 10, 250)
np.random.seed(0)
y = double_exp(x, *truths)+0.1*np.random.randn(x.size)
p = model.make_params(a1=4, t1=3, a2=4, t2=3)
但它没有用。因此,我尝试从 lmfit 创建一个参数对象:
import lmfit
p = lmfit.Parameters()
但它也没有用。
我正在使用以下版本:
- 蟒蛇 2.7 64b
- LMFIT 0.9.15
- NUMPY 1.16.5
- 不确定性 3.1.2
- 六 1.11.0
- 星标 0.9.16
如果您能帮助我,我将不胜感激。
溶液:
问题出在Python 2.7的版本上。我更新到 Python 2.7.17,现在它可以工作了!
巴勃罗。
请执行以下操作:
pip uninstall lmfit==0.9.15
pip uninstall asteval==0.9.16
然后按以下顺序再次安装它:
pip install asteval==0.9.16
pip install lmfit==0.9.15