Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 巨蟒;IOError:[ERRNO13]权限被拒绝";运行cron作业时,而不是从命令行运行时_Python_Permissions_Cron - Fatal编程技术网

Python 巨蟒;IOError:[ERRNO13]权限被拒绝";运行cron作业时,而不是从命令行运行时

Python 巨蟒;IOError:[ERRNO13]权限被拒绝";运行cron作业时,而不是从命令行运行时,python,permissions,cron,Python,Permissions,Cron,我已经从我的本地机器(Mac)切换到一个名为“一万美元钞票”的远程机器,作为用户“chilge” 我想在文件夹“/afs/athena.mit.edu/c/h/chilge/web_scripts”中运行Python脚本,生成一个.png图像并保存到文件夹“/afs/athena.mit.edu/c/h/chilge/www/TAF_figures/KORD/1407”。当我从命令行运行脚本时,生成并保存图像时不会出现任何问题。但是,当我以cron作业的形式运行脚本时(crontab位于“/af

我已经从我的本地机器(Mac)切换到一个名为“一万美元钞票”的远程机器,作为用户“chilge”

我想在文件夹“/afs/athena.mit.edu/c/h/chilge/web_scripts”中运行Python脚本,生成一个.png图像并保存到文件夹“/afs/athena.mit.edu/c/h/chilge/www/TAF_figures/KORD/1407”。当我从命令行运行脚本时,生成并保存图像时不会出现任何问题。但是,当我以cron作业的形式运行脚本时(crontab位于“/afs/athena.mit.edu/c/h/chilge/cron_scripts”中),会出现以下错误:

回溯(最近一次呼叫最后一次):

文件“/afs/athena.mit.edu/user/c/h/chilge/web_scripts/generate_plots.py”,第15行,在 保存塔菲格(塔夫,图)

文件“/afs/athena.mit.edu/user/c/h/chilge/web_scripts/plotting.py”,第928行,在save_taffig中 图.savefig(os.getcwd()++'/'+savename++'.png')

savefig中的文件“/usr/lib64/python2.7/site packages/matplotlib/figure.py”,第1084行 self.canvas.print_图(*args,**kwargs)

文件“/usr/lib64/python2.7/site packages/matplotlib/backend_base.py”,第1923行,如图所示 **kwargs)

文件“/usr/lib64/python2.7/site packages/matplotlib/backends/backend_agg.py”,第443行,打印为png filename_或_obj=文件(filename_或_obj,'wb')

IOError:[Errno 13]权限被拒绝:'/afs/athena.mit.edu/user/c/h/chilge/www/TAF_figures/KORD/1407/140723-1200_AMD_140723-1558.png'

我相信我已经正确地更改了所有必要目录的权限,但是我仍然收到这个错误。我不确定为什么脚本可以从命令行正常运行,但在尝试将脚本作为cron作业运行时失败


(另外,我不确定这是否相关,但在远程计算机上没有sudo权限。)

可能是其他软件打开了要覆盖的文件?

您确定cron作业以同一用户身份运行吗?也许试着在你的脚本中打印当前用户名,看看它是否与你的普通用户名相同。问题与pgorsira相同。还有我的两分钱:在操作路径时始终使用
os.path
。此外,应使用
open
而不是
file
来打开文件(并且
file
仅用于类型检查)。感谢您的回复,pgorsia和Cilyan。我在脚本中打印了当前用户名,它与我的普通用户名相同。另外,我应该说,在我编写的代码中,我没有使用
file
来打开文件,而是调用
pyplot.savefig(savepath)
来保存图形,我想这可能就是使用
file
的原因。