0

我是使用 Ubuntu 的初学者,目前正在尝试在使用 FEniCS 模块的 Ubuntu 20.04 中运行 Simon W. Funke 的 OpenTidalFarm python 代码。我正在使用 FEniCS 2019.2.0,而 Python 3.8.5 是我当前的 python 版本。

这是我要运行的代码:

from . import finite_elements
from . import helpers

from .farm import *
from .turbines import *
from .solvers import *
from .problems import *
from .domains import *
from .functionals import *
from .tidal import *
from .optimisation_helpers import *
from .reduced_functional import *
from .fenics_reduced_functional import *
from .boundary_conditions import *
from .turbine_function import *

from dolfin import *
from dolfin import parameters
from dolfin_adjoint import minimize, maximize, Function, solve, Control, \
                           Constant

parameters["form_compiler"]["representation"] = "uflacs"

# We set the perturbation_direction with a constant seed, so that it is
# consistent in a parallel environment.
import numpy
numpy.random.seed(21)

.optimisation_helpers.py模块中有这些导入:

from dolfin import Constant, log, INFO

但是当我执行主代码时,它显示了这样的错误:

ImportError: cannot import name 'log' from 'dolfin' (/usr/lib/petsc/lib/python3/dist-packages/dolfin/__init__.py)

所以我检查了__init__.pydolfin 模块代码(这与错误显示的路径不同,路径是 \usr\lib\petscdir\petsc3.12\x86_64-linux-gnu-real\lib\python3\dist-packages \dolfin) 并试图找到“日志”在哪里,我只能找到这个:

from .cpp.log import (info, Table, set_log_level, get_log_level, LogLevel,
                      Progress, begin, end, error, warning, set_log_active)

我想知道有什么问题。可能是因为 .cpp 模块没有声明“日志”变量,或者可能是因为路径不同,或者完全是别的什么?我不太熟悉从 python 中的 .cpp 导入,我对如何解决这个问题感到困惑。先感谢您。

4

0 回答 0