ImportError: невозможно импортировать имя get_ast_names ошибка в lmfit - PullRequest
0 голосов
/ 02 ноября 2018

Я недавно обновился до Ubuntu 18.04.1 LTS. После этого я попытался запустить некоторые из своих кодов Python и получил ошибку, связанную с lmfit пакетом , вот код:

import scipy
from asteval import get_ast_names
import lmfit

(Я явно добавил модули scipy и asteval, чтобы проверить, что python находил их по очереди) Я получил эту ошибку:

    Traceback (most recent call last):
  File "/home/maurizio/Documents/Python/Programmini/PhD/TEAS/Test.py", line 3, in <module>
    import lmfit
  File "/home/maurizio/.local/lib/python2.7/site-packages/lmfit/__init__.py", line 42, in <module>
    from .confidence import conf_interval, conf_interval2d
  File "/home/maurizio/.local/lib/python2.7/site-packages/lmfit/confidence.py", line 12, in <module>
    from .minimizer import MinimizerException
  File "/home/maurizio/.local/lib/python2.7/site-packages/lmfit/minimizer.py", line 35, in <module>
    from .parameter import Parameter, Parameters
  File "/home/maurizio/.local/lib/python2.7/site-packages/lmfit/parameter.py", line 8, in <module>
    from asteval import Interpreter, get_ast_names, valid_symbol_name
ImportError: cannot import name get_ast_names

, который в основном утверждает, что lmfit не может найти функцию get_ast_names из asteval, хотя интерпретатор python не жалуется, когда я пытаюсь импортировать ее, поэтому она должна быть правильно установлена. Я обнаружил этот вопрос со схожей проблемой, и парень в комментариях утверждает, что решил эту проблему, переустановив его с помощью pip3, поэтому я попытался скомпилировать его с помощью python3, и проблема не возникает, поэтому проблема касается только Python 2.

Любая помощь?

1 Ответ

0 голосов
/ 03 ноября 2018

Я считаю, что у вас должны быть конфликтующие версии lmfit и asteval. Это должно быть автоматически замечено (и в идеале разрешено) при установке lmfit, но что-то там, похоже, пошло не так. Для последних выпусков вы должны получить

>>> import asteval 
>>> asteval.__version__
0.9.12
>>> import lmfit
>>> lmfit.__version__
0.9.11

В зависимости от того, как вы их установили, вам может потребоваться проверить и удалить более старые версии asteval в папке $HOME/.local/lib/python2.7/site-packages/ и заново выполнить pip install asteval.

...