ImportError:无法在lmfit上导入名称get_ast_names错误

时间:2018-11-02 17:10:39

标签: python importerror lmfit

我最近已更新到Ubuntu 18.04.1 LTS。之后,我尝试运行一些python代码,但遇到与lmfit package相关的错误,下面是代码:

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不能从asteval中找到函数get_ast_names,尽管当我尝试导入python解释器时不会抱怨,因此应该正确安装。 我发现this question遇到了类似的问题,并且评论中的那个人声称他通过用pip3重新安装来解决了这个问题,所以我尝试使用python3进行编译,因此没有问题,因此该问题仅涉及python 2

有帮助吗?

1 个答案:

答案 0 :(得分:1)

我相信您的lmfitasteval版本必须相互冲突。在安装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