尝试运行 FEniCS 示例代码时编译器出错

Nat*_*ha 5 c++ python-3.x fenics

我刚刚尝试在 Ubuntu 16.04 上安装 FEniCS,当我尝试使用 python3.5 运行第一个示例代码时,出现以下 2 个错误:

 RuntimeError: Expecting a string or list of strings, not
 {'slepc_real', 'sz', 'mpi', 'mpi_cxx', 'hdf5', 'boost_timer', 'm',
 'boost_filesystem', 'z', 'dolfin', 'petsc_real', 'dl'}.

 RuntimeError: Unable to compile C++ code with dijitso
Run Code Online (Sandbox Code Playgroud)

附加错误图片

有没有人遇到过这个并设法修复它?

Ada*_*dam 0

我刚才遇到了同样的问题。我使用 python 调试器运行了 run 教程:

$ python3 -m pdb ft01_poisson.py
Run Code Online (Sandbox Code Playgroud)

我发现了问题并通过在三行 /usr/lib/python3/dist-packages/dolfin/jit/jit.py 上添加显式转换来添加 list(...) 语句来修复它(hackishly)

# Set compiler/build options 
params = dijitso.params.default_params() 
params['build']['include_dirs'] = list(dolfin_pc["include_dirs"]) 
params['build']['libs'] = list(dolfin_pc["libraries"]) 
params['build']['lib_dirs'] = list(dolfin_pc["library_dirs"])
Run Code Online (Sandbox Code Playgroud)