2016-04-22 36 views
-3

我收到以下错误,当我运行我的python脚本:运行:没有suchfile或目录

/Documents/stage/crocus/python$ python bonaiguaforcing.py 
sh: 1: ncks: not found 
sh: 1: ncatted: not found 
Traceback (most recent call last): 
    File "bonaiguaforcing.py", line 142, in <module> 
    creatforc('/home/chomette/Documents/stage/crocus/bonaigua2.txt','/home/chomette/Documents/stage/crocus/FORCING_bonaigua.nc') 
    File "bonaiguaforcing.py", line 46, in creatforc 
    meteo=netCDF4.Dataset(net_out,'a') 
    File "netCDF4/_netCDF4.pyx", line 1746, in netCDF4._netCDF4.Dataset.__init__ (netCDF4/_netCDF4.c:10983) 
RuntimeError: No such file or directory 

在我的Python脚本创建NetCDF文件来复制数据,然后创建一个新的netCDF文件一个新的变量,似乎python没有找到第一个netCDF文件创建....但我不知道。 感谢您的帮助=)

+1

你可以发布你的脚本或者至少是你认为会引发错误的部分吗? –

回答

1

没有看到产生错误的代码,这看起来像一个环境定义问题。您的shell无法找到NCO的安装位置(如果您没有NCO,那么这是一个依赖性问题,您需要安装它才能使脚本正常工作)。

你有没有在bash尝试:

which ncks 
    which ncatted 

如果这些都不是你的路,你会需要添加指向它们的别名在你的bash RC,你的主目录下执行以下(含vi或其他编辑):

vi .bashrc 

然后添加到文件:

alias ncks='/usr/bin/ncks' 
alias ncatted='/usr/bin/ncatted' 

你将需要将/usr/更改为您的NCO安装位置。此外,在再次测试您的程序之前,请不要忘记获取. .bashrc。您也可以在shell中输入别名,但每次打开新终端时都需要执行此操作。

更新回答(基于您的评论如下): 现在看来您的脚本没有找到netCDF4模块的一部分(它的部分用c编写,因此扩展名为.pyx)。您需要确保您的环境已正确定义,并且netCDF模块已正确编译。在继续之前,在终端中输入以下命令:

python 
from netCDF4 import Dataset 

确保模块存在。如果可行,那么您可以按照https://netcdf4-python.googlecode.com/svn/trunk/docs/netCDF4-module.html上的说明创建一个数据集,以确保模块已正确编译。

有关信息,您是否将番红花模型移植到新机器上?如果是这样的话,那可能就解释了为什么你错过了许多依赖项(你的代码需要运行的模块,库和运算符)。如果没有,你的脚本中可能会出现另一个错误,使得它看起来像一个依赖性问题。如果你不认为这是你的环境/依赖关系的问题(例如,如果某人已经在你的机器上运行了相同的脚本并且它工作正常),请张贴你的脚本的一部分来生成番红花强迫。谢谢!

+0

谢谢你的回答,你知道一个aswer网站来安装modul数据集吗?导致这一个https://netcdf4-python.googlecode.com/svn/trunk/docs/netCDF4-module.html不起作用。 – joe

+0

感谢您的回答,我现在有了番红花的模拟,但是当我想绘制时,我有(另一次)问题:cro_pro = netCDF4.Dataset(“PRO_2015090106_2016043006_dust.nc”,'r') File “netCDF4/_netCDF4.pyx”,第1746行,在netCDF4._netCDF4.Dataset中。__init__(netCDF4/_netCDF4.c:10983) RuntimeError:没有这样的文件或目录。 我想我的机器没有找到数据集模块,但我已经安装了“netcdf4的python接口”包,如何知道模数据集模块是否已安装? – joe

+0

要了解Dataset类是否已安装,只需在内部创建一个只包含'from netCDF4 import Dataset'的python脚本。如果它运行,那么你已经正确安装了python的netCDF4模块,错误在其他地方。您可以在这里找到netCDF4 python API必须安装的所有软件:http://unidata.github.io/netcdf4-python/#netCDF4.Dataset。请注意,如果你没有提供带有文件名的路径(例如netCDF4.Dataset(“/ path/myfile.nc”,'r')),你必须在你的netCDF文件所在的目录下运行你的绘图软件。 – SpicyBaguette

0

您看到RuntimeError,因为在netout中指定的文件名不存在 - 'a'模式(追加)要求文件存在。