为什么我的代码会出现“NameError:name'ModuleNotFoundError'未定义”的错误?

2024-10-03 04:39:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在本地安装以下Flask应用程序:SolarPi。由于我必须安装raven包,并且github repo上有一些请求和问题没有得到响应,所以我假设代码已经损坏,不再进行维护。尽管我对Flask和Python不够熟练,我还是决定试试看,试着让它运行起来。在

当我跑的时候

$ (.env) python manage.py server

代码引发以下错误:

Traceback (most recent call last):
  File "manage.py", line 9, in <module>
    from solarpi.app import create_app
  File "/home/path/solarpi/solarpi/app.py", line 7, in <module>
    from solarpi import public, weather, charts, statistics, tables
  File "/home/path/solarpi/solarpi/public/__init__.py", line 4, in <module>
    from . import views
  File "/home/path/solarpi/solarpi/public/views.py", line 11, in <module>
    from solarpi.public.helper import get_operating_days
  File "/home/path/solarpi/solarpi/public/helper.py", line 4, in <module>
    from pysolar.util import get_sunrise_sunset
  File "/home/path/solarpi/.venv/lib/python2.7/site-packages/pysolar/__init__.py", line 1, in <module>
    from . import \
  File "/home/path/solarpi/.venv/lib/python2.7/site-packages/pysolar/radiation.py", line 21, in <module>
    from . import numeric as math
  File "/home/path/solarpi/.venv/lib/python2.7/site-packages/pysolar/numeric.py", line 140, in <module>
    except ModuleNotFoundError:
NameError: name 'ModuleNotFoundError' is not defined

因为可以检查文件数值.py在

^{pr2}$

ModuleNotFoundError只是一个异常子句。在

这里比较棘手的是,当找不到本地或全局名称时引发的异常“NameError”捕获另一个内置异常引发的异常,在本例中为“ModuleNotFoundError”。由于这些异常是内置的,所以我假设代码只是编写到python3中,而不是像前面所说的python2。我是否遗漏了一些不会导致重构整个代码的内容?在


Tags: path代码infrompyimportapphome
2条回答

为了澄清这些注释:正如许多人所说,ModuleNotFoundError只在python3中可用,但必须使用python2。然而,ImportError异常在python2和python3中是可用的,它只是有点不精确。在

ModuleNotFoundError替换为ImportError应该可以。在

问题不是缺少模块,而是缺少异常类。以下代码:

try:
    import numpy
    use_numpy()
except ModuleNotFoundError:
    pass

应该尝试导入numpy,但如果失败,则忽略该失败并继续(pass=不执行任何操作)。在

但是,代码试图捕捉异常ModuleNotFoundError-这在python2.7中不存在。在

只需使用python3运行代码。在

相关问题 更多 >