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, в из .confidence импортировать 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: неверный синтаксис
я действительно не знаю, что происходит. Я также пробую другую программу, связанную с lmfit, но возникает та же ошибка.
Файл "<ipython-input-13-6df3e4b517ba>", строка 1, в <module> import неопределенности Файл "C:\Users\MUHAMMAD ALI QURESHI\Anaconda3\lib\site-packages\uncertainties_в этом_.py", строка 224, в <module> from .core import * File "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.
я также попробовал импорт lmfit в консоли Ipython, и существует та же ошибка
Вы должны отредактировать свой вопрос, чтобы предоставить ПОЛНУЮ неотредактированную трассировку В ВОПРОСЕ.
А что сейчас...






Я думаю, вам нужно переустановить uncertainties. Похоже, что код, который у вас есть, использует синтаксис Python2.
Я считаю, что uncertainties должен (автоматически) использовать 2to3 tool при установке — похоже, что какая-то часть этого не сработала для вас.
Он должен работать, чтобы сделать:
C:\.....\Anaconda3\Scripts\pip.exe install --force-reinstall uncertainties
Я скачал неопределенность с github и поместил файл в site-packages. Это обычно работает для меня, но в случае lmfit это не так. Если вы хотите, чтобы я переустановил неопределенность, пожалуйста, пришлите мне ссылку на нее.
Во-первых, проблема с uncertainties, а не с lmfit. Что еще более важно, не путайте place the file in site-packages с установкой пакета — это объясняет проблему, которую вы видите. Вместо этого вам нужно установить пакет с pip install uncertainties, как указано как в его собственных инструкциях, так и в ответе выше. Похоже, что у вас возникли проблемы из-за того, что вы не следовали инструкциям по установке. Дважды. Надеюсь, это поможет продемонстрировать, почему важно следовать инструкциям.
OK. позвольте мне установить его с соответствующими протоколами.
ИСПОЛЬЗУЯ pip, я только что скачал pip-19.0.3 из этого bootstrap.pypa.io/get-pip.py... После этого я сошел с ума, не знаю, что теперь делать .. :(
Что ж, если вы используете anaconda python, вы можете сделать conda install pip, а затем pip install uncertainties. Или вы можете использовать conda для установки uncertainties, так как есть несколько каналов conda, в которых есть uncertainties, в том числе conda-forge. Но ваш вопрос был о том, почему lmfit не работает, а не о том, как использовать хорошо документированные pip и/или conda для установки пакетов Python. В любом случае, ответ говорит вам, как именно бегать pip install.
Спасибо . Я что-то разобрался, и это сработало для меня :)
Предоставьте полную трассировку ошибки. Похоже, что импорт неопределенностей не работает, но этого недостаточно, чтобы понять, почему (неверный синтаксис может указывать на проблему с версией Python). Попробуйте простые
import uncertaintiesиimport uncertainties.core(например, просто введите их в командной строке Python) и изучите или сообщите о полной трассировке.