问题描述:casa不同的版本依赖不同版本的python以及其不同版本的包,经常在更新CASA版本,更新系统,更新python版本后遇到CASA出现bug。希望能有一种方法,避免这种可能。另外,我希望能在jupyter notebook中使用CASA,既可以交互式也可以记录。
在这个网页(https://casadocs.readthedocs.io/en/v6.6.0/notebooks/introduction.html#)中,根据你的系统版本和python版本悬着适当的CASA版本安装。 我是在Ubuntu20.04中python3.10中安装CASA6.6,下面是我安装和配置过程。
因为我安装了好几个版本的python,用conda设置一个虚拟环境避免冲突,而且也方便复制虚拟环境,方便之后的环境迁移。
# 终端中
conda create --name casapy python=3.10. ##创建一个casapy的虚拟环境
conda activate casapy ##激活casapy环境
import os
os.system("conda install casatools==6.6.0.20")
os.system("conda install casatasks==6.6.0.20")
os.system("conda install casaplotms==2.2.4")
os.system("conda install casadata==2023.9.25")
!pip install --upgrade --force-reinstall https://casa-pip.nrao.edu/repository/pypi-casa-release/packages/casadata/2023.9.25/casadata-2023.9.25-py3-none-any.whl
!pip install casaviewer==1.9.1
# #!pip install casashell==6.6.0.20
# #!pip install casaplotserver==1.7.1
# #!pip install casatestutils==6.6.0.20
# #!pip install casatablebrowser==0.0.33
# #!pip install casalogger==1.0.17
# #!pip install casafeather==0.0.20
!pip show matplotlib ## version 3.8.0
!pip uninstall matplotlib
!pip install matplotlib==3.4.0
!sudo apt-get install xvfb
!pip install pyvirtualdisplay
!pip install casaviewer==1.9.1
接下来是简单地测试是否能成功使用CASA。
import casatasks
casatasks.__all__
from casatasks import tclean
from pyvirtualdisplay import Display
display = Display(visible=0,size=(1024,768))
display.start( )
<pyvirtualdisplay.display.Display at 0x7fa86c1d1e70>
from casaviewer import imview
from IPython.display import Image
imview('../Barray_Lband/N5084_B_L_h_Q_rob0.image.tt0', out='test.png')
Image(filename="test.png")
(0) waiting for viewer process... (1) waiting for viewer process...
xauth: file /home/ortra/.casa/xauthority does not exist
(2) waiting for viewer process... (3) waiting for viewer process...
Gtk-Message: 22:12:44.189: Failed to load module "gail" Gtk-Message: 22:12:44.189: Failed to load module "atk-bridge" Qt: Session management error: None of the authentication protocols specified are supported
(4) waiting for viewer process... ...{'id': 'casaviewer:4637', 'priority': 0, 'types': array(['shutdown', 'image-view', 'interactive-clean'], dtype='<U17'), 'uri': '0.0.0.0:39259'}
在测试中提示错误,需要减低protobuf的版本,如下操作。
!pip show protobuf ## version 4.24.4
!pip uninstall protobuf
!pip install protobuf==3.20
from casaplotms import plotms