python lmfit程序没有运行

Posted

技术标签:

【中文标题】python lmfit程序没有运行【英文标题】:python lmfit program not running 【发布时间】:2019-03-09 18:42:59 【问题描述】:
import matplotlib.pyplot as plt
import numpy as np

from lmfit.model import load_model


def mysine(x, amp, freq, shift):
    return amp * np.sin(x*freq + shift)



data = np.loadtxt('sinedata.dat')
x = data[:, 0]
y = data[:, 1]

model = load_model('sinemodel.sav', funcdefs='mysine': mysine)
params = model.make_params(amp=3, freq=0.52, shift=0)
params['shift'].max = 1
params['shift'].min = -1
params['amp'].min = 0.0

result = model.fit(y, params, x=x)
print(result.fit_report())

plt.plot(x, y, 'bo')
plt.plot(x, result.best_fit, 'r-')
plt.show()

Traceback(最近一次通话最后一次):

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py”,第 2910 行,在 run_code exec(code_obj, self.user_global_ns, self.user_ns)

文件“”,第 4 行,在 从 lmfit.model 导入 load_model

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\lmfit__init__.py”,第 39 行,在 from .confidence import conf_interval, conf_interval2d

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\lmfit\confidence.py”,第 10 行,在 从 .minimizer 导入 MinimizerException

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\lmfit\minimizer.py”,第 34 行,在 进口不确定性

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\uncertainties__init__.py”,第 224 行,在 从 .core 导入 *

文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\uncertainties\core.py”,第 2889 行 POSITIVE_DECIMAL_UNSIGNED_OR_NON_FINITE = ur'((\d*)(.\d*)?|nan|NAN|inf|INF)' ^ SyntaxError: 无效语法

【问题讨论】:

请提供错误的完整回溯。不确定性的导入似乎失败了,但这里还不足以知道原因(无效的语法可能表明 Python 版本问题)。尝试一个简单的import uncertaintiesimport uncertainties.core(例如,只需在 Python 提示符下输入)并调查或报告完整的回溯。 我真的不知道发生了什么。我也尝试了与 lmfit 相关的不同程序,但出现了同样的错误。 文件“”,第 1 行,在 中导入不确定性文件“C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\uncertainties_ init_.py",第 224 行,在 中从 .core 导入 * 文件 "C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\uncertainties\core.py",第 2889 行 POSITIVE_DECIMAL_UNSIGNED_OR_NON_FINITE = ur'((\d*)(\.\d*)?|nan|NAN|inf|INF)' ^ SyntaxError: invalid syntax 我无法弄清楚实际问题是什么。不确定包还是python版本问题。 我也在Ipython控制台尝试了import lmfit,同样的错误存在 【参考方案1】:

我认为您需要重新安装uncertainties。看起来您拥有的代码正在使用 Python2 语法。

我相信uncertainties 需要(自动)在安装时使用2to3 tool——看起来其中的某些部分对您不起作用。

应该可以这样做:

C:\.....\Anaconda3\Scripts\pip.exe install --force-reinstall uncertainties

【讨论】:

我从 github 下载了不确定性并将文件放在站点包中。这东西通常对我有用,但在 lmfit 的情况下它不是。如果你想让我重新安装不确定性,请把它的链接发给我。 首先,问题出在uncertainties,而不是lmfit。更重要的是,不要将place the file in site-packages 与安装软件包混淆——这解释了您所看到的问题。相反,您需要使用pip install uncertainties 安装软件包,如其自身说明和上述答案中所述。您遇到的问题似乎是因为您没有按照安装说明进行操作。两次。希望这有助于说明为什么遵循说明很重要。 好的。让我用适当的协议安装它。 使用 pip 我刚刚从 bootstrap.pypa.io/get-pip.py 下载了 pip-19.0.3... 之后我疯了,不知道现在该做什么 .. :( 好吧,如果你使用 anaconda python,你可以先conda install pip 然后pip install uncertainties。或者,您可以使用conda 来安装uncertainties,因为有几个conda 频道可以使用uncertainties,包括conda-forge。但是您的问题是关于为什么lmfit 不起作用,而不是关于如何使用有据可查的pip 和/或conda 来安装Python 包。无论如何,答案告诉你究竟如何运行pip install

以上是关于python lmfit程序没有运行的主要内容,如果未能解决你的问题,请参考以下文章

Python LMFIT - 使用有界参数时,获取最小化的错误结果

lmfit 模型拟合然后预测

lmfit:相对于其他参数的约束参数

如何使用 LMfit 将曲线拟合到双高斯/偏斜高斯

如何在Python中配合Split Pearson 7函数?

如果系统上没有安装Python的话应该怎样运行python写的程序啊?