生信其实在逐渐抛弃R语言,拥抱Python,就好比Pyscenic比R版本快几十倍。光谈scRNA而言,Python生态也非常丰富:scRNA-Seq学习手册Python版。甚至空间转录组分析几乎是完全在Python生态中发展。此前我们分享过码Python神器:jupyter notebook、VSCode等IDE的使用,本推送主要介绍Spyder的安装与使用方法。
Spyder 是一款专为科学计算和数据分析设计的开源 Python 集成开发环境(IDE),尤其在学术研究、工程计算和数据科学领域广泛使用。它由 Python 科学计算生态的核心团队开发,与 NumPy、Pandas、Matplotlib 等库深度集成,提供了直观的界面和高效的工作流。
专为科学计算优化
多面板界面设计界面分为多个可自定义的面板,核心包括:
强大的调试功能
与 Anaconda 生态深度融合
spyder 命令快速打开。
Spyder编写代码后运行,可以实时查看与修改变量,也可在Python交互终端实时执行代码。

调试模式下调试代码也比较方便。

Spyder也支持Cell语法,可以分块运行代码。和Matlab、Jupyter中的Cell功能类似的,只不过Spyder中的Cell是通过# %%注释来实现的,通过Cell我们就可以单独运行和调试代码片段了。

# 创建环境conda create -n spyder -y# 激活环境conda activate spyder# 安装Spyderconda install spyder# 运行Spyderspyder
Spyder不像Browser/Server架构的Rstudio Server、Jupyter一样可以基于浏览器访问,Spyder是一个桌面端应用。如果在没有GUI界面的Linux服务器运行Spyder,会直接报错。

如果不想安装Spyder,只是想尝试一下,可以用Spyder Binder在线使用Spyder。



Linux本身是没有图形化界面的,其后续使用的图形化界面,底层均基于X协议,X11指的是X协议的第十一个版本。X协议分为Server端和Client端:
原生桌面系统中X Server端和X Client端都在同一个电脑上面,对于普通用户而言,X协议的存在感比较低。但由于X协议客户端与服务端分离的设计,使得X Server和X Client可以不在同一个电脑之上,二者可以通过网络进行数据交换!基于以上协议,我们可以通过SSH的X11转发,让没有图形化界面的Linux系统运行图形化软件,通过使用本地电脑的图形化界面进行交互。
# 编辑SSH配置文件sudo vim /etc/ssh/sshd_config# 确保X11Forwarding是开启的X11Forwarding yes# 重启SSH服务使得配置生效sudo systemctl restart ssh
使用支持X协议的软件SSH连接到服务器,这里推荐使用MobaXterm,其支持X协议。这里比较绕的一点是,我们是在SSH客户端运行了X服务端,实际上可以简单理解为X协议中谁负责画图谁就是服务端。
如果上一步正确开启了X11Forwarding,那么在MobaXterm连接上去的时候,其会提示remote display is forwarded through SSH。

使用MobaXterm连接上服务器后,Linux命令行运行spyder命令,本地电脑就会弹出Spyder窗口,在这个窗口编辑的文件,环境均是服务器上的。

运行spyder命令后,Linux终端会阻塞等待直到中断命令或者关闭Spyder窗口,如果还要执行Linux命令,需要新开一个会话来执行Linux命令。

综合体验下来X11转发的方式使用Spyder还算可以,不过比较依赖网络,建议内网使用。如果是走互联网公网访问,有可能出现卡顿等情况影响操作。
使用安装包的方式安装Spyder比较简单,都是默认选项一直安装就行。

安装好后打开使用,和上述Spyder Online和X11转发方式使用上没有差异。

本地的Spyder可以连接远程的内核,在服务器Linux客户端执行下面命令启动一个内核进程。
# 进入Spyder环境conda activate spyder# 启动spyder内核,如果没安装,则这样安装 pip install spyder-kernelspython -m spyder_kernels.console
/home/用户名/.local/share/jupyter/runtime目录下把kernel-xxx.json文件下载到本地,然后本地的Spyder点击Connect to an existing kernel,连接到远程的内核。

Connection file选择上一步下载下来的文件,按连接SSH的方式填充remote kernel的信息。

连上后就能使用服务器上的环境执行本地电脑上的代码了,这种方式是最节约网络带宽的,使用起来不会有卡顿的感觉,缺点就是代码文件和执行环境分开了,不过搭配Git使用,代码同步都是小问题(使用Git保存代码)。

画图功能也是正常的,切换到Plots这个窗口就能看到。

如果在X11转发运行Spyder的过程中,SSH连接断开了,再次启动会提示Spyder is already running. If you want to open a new instance, please use the --new-instance option。如果我们一直使用--new-instance参数,会导致启动多个Spyder进程,所以最好不要这样做。

可以kill掉旧的Spyder,再启动即可。
# 通过监听端口找到Spyder的进程号ss -tnlp# 杀死Spyder进程kill -9 Spyder的进程号# 启动Spyderspyder




如何联系我们


已有生信基地联系方式的同学无需重复添加

