5

我刚刚尝试在 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

附上错误图片

有没有人遇到过这个并设法解决它?

4

2 回答 2

3

在这种情况下,问题是旧版本的pkgconfig. 请用命令更新它

$ pip3 install -U pkgconfig

然后,即使您没有更改,这个问题也应该消失/usr/lib/python3/dist-packages/dolfin/jit/jit.py

于 2019-04-17T21:43:54.653 回答
0

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

$ python3 -m pdb ft01_poisson.py

我发现了问题并通过在三行 /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"])
于 2019-04-15T23:41:34.797 回答