Ubuntu18.04安装GetFEM++后调用mesh报NameError该如何解决
问题解决方法
报错原因
该NameError不是系统版本或依赖缺失导致的,不需要升级Ubuntu 18.04,问题出在两个地方:
- 语法调用错误:
mesh是getfem模块下的类,不能直接全局调用,同时注意类名首字母为大写Mesh - 若
import getfem本身就执行失败,说明Anaconda环境默认无法识别你通过apt安装到系统路径的getfem包
具体解决步骤
第一步:修正调用语法
将代码调整为以下任意一种写法即可:
写法1(保留模块前缀):
import getfem m = getfem.Mesh('cartesian', range(0, 3), range(0,3))
写法2(显式导入类):
from getfem import Mesh m = Mesh('cartesian', range(0, 3), range(0,3))
第二步:若导入getfem时报模块不存在的错误,解决路径问题
apt安装的python-getfem++默认存放在系统Python的第三方库路径,Anaconda解释器默认不会加载该路径,可通过以下方式解决:
- 临时添加系统库路径,在代码开头补充:
import sys # Ubuntu 18.04系统Python3的第三方库默认路径,若使用Python2可改为对应路径 sys.path.append('/usr/lib/python3/dist-packages') import getfem
- 也可以直接在Anaconda环境下重新编译安装GetFEM++的Python绑定,无需修改系统配置
内容的提问来源于stack exchange,提问作者SaeedehZZZ
相关产品推荐
相关产品推荐

