Python 带libnetcdf fortran的操作系统错误:未定义符号

Python 带libnetcdf fortran的操作系统错误:未定义符号,python,fortran,gfortran,netcdf,netcdf4,Python,Fortran,Gfortran,Netcdf,Netcdf4,我不得不在我的Linux(Ubuntu 15.10)上更新一些Anaconda/Python软件包,因此我现在收到了以下我从未见过的错误消息: OSError: /usr/lib/x86_64-linux-gnu/libnetcdff.so.6: undefined symbol:nc_rename_grp 在Python脚本中调用基于Fortran的程序时发生错误。但是,在没有Python的情况下运行完全相同的程序时,一切都非常好 更新后我也重新编译了程序,但没有任何改变 有人知道这里发生了

我不得不在我的Linux(Ubuntu 15.10)上更新一些Anaconda/Python软件包,因此我现在收到了以下我从未见过的错误消息:

OSError: /usr/lib/x86_64-linux-gnu/libnetcdff.so.6: undefined symbol:nc_rename_grp
在Python脚本中调用基于Fortran的程序时发生错误。但是,在没有Python的情况下运行完全相同的程序时,一切都非常好

更新后我也重新编译了程序,但没有任何改变


有人知道这里发生了什么吗?

符号nc\u rename\u grp是在libnetcdf.so中定义的。如果使用子流程运行FORTRAN代码,则必须按如下方式声明env:

env["LD_LIBRARY_PATH"] = "/usr/lib/x86_64-linux-gnu"
h = subprocess.Popen(cmd,env=env)

谢谢大家的帮助。该问题是由于在./bashrc中错误地设置了netcdf库的路径而导致的,因此该程序(即计算机程序/模型)无法正常工作。现在一切都已解决,程序/模型已启动并运行

我认为anaconda在其目录结构的某个地方提供了自己的netcdf库版本。也许您正在使用一个动态链接的对象,当从anaconda中运行时,该对象希望使用anaconda lib版本(可能有额外的符号),但您的
LD_LIBRARY_路径
或类似路径意味着它正在获取系统版本(反之亦然)。您能否详细说明一下什么是“基于fortran的”程序以及如何运行它,即您是否只是使用python中的系统调用来运行可执行文件?如果是这样的话,您可以从python和python外部执行
ldd myExecutable
。在英国英语中,program指的是计算机程序及其编程,program指的是这个词的所有其他含义。