当前位置:首页>python>码Python神器之Spyder| 安装、连接与使用

码Python神器之Spyder| 安装、连接与使用

  • 2026-09-24 20:24:58
码Python神器之Spyder| 安装、连接与使用

一、写在前面

生信其实在逐渐抛弃R语言,拥抱Python,就好比Pyscenic比R版本快几十倍。光谈scRNA而言,Python生态也非常丰富:scRNA-Seq学习手册Python版。甚至空间转录组分析几乎是完全在Python生态中发展。此前我们分享过码Python神器:jupyter notebook、VSCode等IDE的使用,本推送主要介绍Spyder的安装与使用方法。

本教程基于Linux环境演示,计算资源不足的同学可参考:足够支持你完成硕博生涯的生信环境独享服务器,生信分析不求人
5090终于上架啦
访问链接:https://biomamba.xiyoucloud.net/
欢迎联系客服微信[Biomamba_zhushou]获取帮助
如果你对Linux/服务器比较迷茫,那么你可以先行学习以下教程:
十小时学会Linux
生信Linux及服务器使用技巧

二、什么是Spyder

Spyder 是一款专为科学计算和数据分析设计的开源 Python 集成开发环境(IDE),尤其在学术研究、工程计算和数据科学领域广泛使用。它由 Python 科学计算生态的核心团队开发,与 NumPy、Pandas、Matplotlib 等库深度集成,提供了直观的界面和高效的工作流。

Spyder 的核心特点:

  1. 专为科学计算优化

    • 内置对科学计算库(如 NumPy、SciPy、Pandas、Matplotlib)的原生支持,无需复杂配置即可调用。
    • 集成 IPython 控制台,支持交互式代码执行(类似 Jupyter Notebook),可实时查看变量和计算结果。
  2. 多面板界面设计界面分为多个可自定义的面板,核心包括:

    • 编辑器
      :支持语法高亮、代码自动补全、括号匹配、代码折叠等功能,支持多文件编辑。
    • IPython 控制台
      :可逐行或块执行代码,实时输出结果,方便调试和快速验证。
    • 变量浏览器
      :自动显示当前环境中的变量名称、类型、值(或预览),支持表格、数组等数据的可视化查看(如 DataFrame 直接以表格形式展示)。
    • 文件浏览器
      :快速导航和管理项目文件,支持直接打开脚本、数据文件等。
  3. 强大的调试功能

    • 支持设置断点、单步执行、监视变量等调试操作,适合复杂代码的错误定位。
    • 调试过程中可实时在变量浏览器中查看变量变化,直观高效。
  4. 与 Anaconda 生态深度融合

    • 通常作为 Anaconda 或 Miniconda 发行版的默认 IDE 预装,无需单独配置 Python 环境,开箱即用。
    • 可直接通过 Anaconda Navigator 启动,或在终端中用 spyder 命令快速打开。

Spyder编写代码后运行,可以实时查看与修改变量,也可在Python交互终端实时执行代码。

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

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

三、Sypder的安装

  • Spyder可以通过安装包或者Conda来安装,Windows和Mac用户可以使用安装包来安装,Linux用户建议使用Conda安装,下面是使用Conda安装的步骤。
# 创建环境conda create -n spyder -y# 激活环境conda activate spyder# 安装Spyderconda install spyder# 运行Spyderspyder
  • 如果是带有原生桌面的Linux系统,输入spyder命令后,Spyder窗口直接就出来了。

四、无GUI界面的Ubuntu如何使用Spyder

Spyder不像Browser/Server架构的Rstudio Server、Jupyter一样可以基于浏览器访问,Spyder是一个桌面端应用。如果在没有GUI界面的Linux服务器运行Spyder,会直接报错。

Spyder Online

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

  • 点击进去会发现Spyder Binder提供的是一个图形化的Linux系统,其预装了Spyder,打开就能使用了。不过使用起来可能比较鸡肋,因为这个Linux系统无法和电脑上的粘贴板互通,也就是不能相互复制粘贴。

X11转发

Linux本身是没有图形化界面的,其后续使用的图形化界面,底层均基于X协议,X11指的是X协议的第十一个版本。X协议分为Server端和Client端:

  • X Client就是具体的应用程序,如Firefox、Spyder等,其向X Server发送在某处绘制某些图形的请求,并接收X Server的事件输入。
  • X Server负责接受图形的绘制,其接收X Client的图形绘制请求进行绘图,并将用户的交互操作事件发送给X Client。

原生桌面系统中X Server端和X Client端都在同一个电脑上面,对于普通用户而言,X协议的存在感比较低。但由于X协议客户端与服务端分离的设计,使得X Server和X Client可以不在同一个电脑之上,二者可以通过网络进行数据交换!基于以上协议,我们可以通过SSH的X11转发,让没有图形化界面的Linux系统运行图形化软件,通过使用本地电脑的图形化界面进行交互。

服务器开启X11转发

# 编辑SSH配置文件sudo vim /etc/ssh/sshd_config# 确保X11Forwarding是开启的X11Forwarding yes# 重启SSH服务使得配置生效sudo systemctl restart ssh

本地电脑使用支持X协议的软件连接服务器

使用支持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比较简单,都是默认选项一直安装就行。

安装好后打开使用,和上述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转发中断了如何处理?

如果在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

本地Spyder是否可以连接以前的内核?

  • 如果执行python -m spyder_kernels.console命令过程中,SSH连接断开了,这个内核就关闭了。后续再次执行python -m spyder_kernels.console,会生成一个新的文件,需要下载新的kernel-xxx.json文件来连接,否则会报错An error occurred while starting the kernel。
  • 运行python -m spyder_kernels.console命令的时候是无法复用以前的kernel-xxx.json文件的,这个文件只是记录了本次内核运行时的本地端口等状态信息,内核关闭了就是关闭了,无法再复原。如果怕SSH连接断开导致内核中断,可以搭配screen命令使用。(screen命令用法)

如何联系我们

留一个领取资料、开箱即用的单细胞分析镜像的微信号[Biomamba_zhushou],方便各位随时交流。同时我们也构建了交流群矩阵,欢迎大家入群讨论。
大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
没有检索,就没有发言权

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

您点的每个赞和在看,我都认真当成了喜欢

最新文章

随机文章