PyRAF运行NTT pessto pipeline遇图像不显示及IPC写入错误求助
我来帮你解决这两个在astroconda环境下运行PyRAF+NTT pessto pipeline遇到的问题,都是我之前踩过的坑,咱们逐个来处理:
这个问题大概率和X11显示配置或者图像查看器的关联有关,按下面步骤排查:
检查DISPLAY环境变量:PyRAF依赖X11来渲染图形界面,先在终端里执行:
echo $DISPLAY如果输出为空,说明X11连接没配置好。本地机器直接设置:
export DISPLAY=:0如果是远程服务器连接,要确保ssh开启了X11转发(用
ssh -X或者ssh -Y登录),并且本地有X服务器运行(比如Windows用MobaXterm,Mac用XQuartz)。确认图像查看器的配置与安装:PyRAF默认用ximtool或者ds9,先在PyRAF交互环境里检查当前设置:
imtool如果显示找不到工具,先在conda环境里安装更稳定的ds9:
conda install -c astroconda ds9然后在PyRAF里手动指定用ds9:
set imtype=ds9再重新尝试显示图像。
修复astroconda的X11依赖:有时候conda环境里的X11相关包缺失,执行以下命令重新安装依赖:
conda install -c astroconda iraf pyraf x11
错误提示PANIC in '/home/anaconda2/envs/iraf27/iraf/noao/bin.linux/x_apextract.e': Write to IPC with no reader本质是x_apextract工具和前端的IPC通信中断,解决方法如下:
确保X11连接稳定:这个和第一个问题强相关,先确认DISPLAY变量正确,X服务器在运行,没有断开连接。
重启所有相关进程:有时候PyRAF或者图像工具的进程挂了,完全退出PyRAF,关闭所有ds9/ximtool窗口,重新激活conda环境:
source activate iraf27然后重启PyRAF再试。
检查工具权限与配置:
- 先确认x_apextract.e有执行权限:
如果没有执行权限,添加权限:ls -l /home/anaconda2/envs/iraf27/iraf/noao/bin.linux/x_apextract.echmod +x /home/anaconda2/envs/iraf27/iraf/noao/bin.linux/x_apextract.e - 在PyRAF里确认apextract的交互模式开启:
set interactive=yes
- 先确认x_apextract.e有执行权限:
修复conda环境的版本兼容:有时候IRAF/noao包的版本冲突会导致这个问题,尝试重新安装指定版本的noao包:
conda install -c astroconda noao=2.16这个版本和IRAF 2.17兼容性较好,适合你的Python 2.7环境。
内容的提问来源于stack exchange,提问作者Pris

