我正在本地安装以下 Flask 应用程序:SolarPi。由于我必须安装 raven 包并且在 Github 存储库中有未回复的拉取请求和问题,因此我假设该代码已经损坏且不再维护。尽管我在 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
如有需要,可以在文件numeric.py中进行检查
from math import degrees, cos, sin, radians, tan, pi
from math import acos, atan, asin, atan2, exp, e
current_mod = 'math'
def globals_import_from(module, name, name_as):
"""
Does "from <module> import <name> as <name_as>" (globally)
"""
...
...
Bunch of defs
...
...
try:
import numpy
use_numpy()
except ModuleNotFoundError:
pass
ModuleNotFoundError
是一个异常处理程序。
这里有点棘手的是,当本地或全局名称未找到时引发的异常 "NameError" 捕获了另一个内置异常抛出的异常,在这种情况下为 "ModuleNotFoundError"。由于这些异常是内置的,我假设代码只是写给 Python 3 而不是所述的 Python 2。我是否遗漏了什么东西,以至于不必重构整个代码?
ModuleNotFoundError
,这是Python3中的内容。我应该重写代码以回退到之前的版本吗?如果是,你知道我该怎么做吗? - pedrezImportError
吗?它是兼容Python2的。 - FrenchMasterSword