Install Anaconda / Spyder on Ubuntu 2022

本文介绍在 Ubuntu 中安装 Spyder / Anaconda IDE 的方法。

About Python IDE

开发运行 Python 程序的环境非常灵活,定制性强,因此选择也就很复杂。如果是做数值计算、数据科学或者机器学习,就毫不犹豫地选 Anaconda 平台,它包含了 Numpy, Spyder, Matplotlib, Jupyter, ipython, machine learning 等等。否则可以选 Pycharm。

另外,不要一开始就选择在终端或 vscode 中开发 Python 程序,它们一般是熟手的选择。

在长期使用 Python 的过程中,你会慢慢发现一个典型的 Python 开发和运行环境包含: Python 解释器, Python 虚拟环境,包安装器 pip 和 Packages,各种 IDE 等等众多组成部分。

Ubuntu apt 源

不要通过 Apt 安装。

Spyder 不是 Ubuntu 的 apt 软件源。在 Ubuntu 22.04 上用 apt 安装 spyder 后 [1],有 QT 错误,打不开 spyder。

How to install Spyder IDE on Ubuntu 22.04 - Unix / Linux the admins Tutorials

通过 Anaconda 安装

如果是使用 Ubuntu,那么正确的安装方法是下载官方的 linux 版本安装包,如 miniconda3,安装好 conda 之后,再用 conda 命令安装 spyder, numpy 等包。

这是首选方法,不必考虑其它方法。

Installing on Linux — Anaconda documentation

安装 miniconda

在 Anaconda 网站下载 Ubuntu 专用的 miniconda 安装包安装,而不是直接用命令行安装。此时,电脑上会多一个 miniconda 专用的 python 环境。

  1. Download 提供官方的 miniconda script file ,install it in terminal

  2. 修改为可执行,并执行 shell 安成 miniconda 的安装

  3. 通过 conda 管理器安装第3方包:

    cd /home/dai/miniconda3/bin/
    ./conda install numpy
    ./conda install spyder
    ./conda install matplotlib
    
  4. 启动 spyder。 有的安装在执许完上一步之后,可以在任意路径下通过 spyder 命令启动 spyder。如果找不到应用,先切换到安装目录。

    cd /home/dai/miniconda3/bin/
    ./spyder
    
  5. 上面的方法安装的 spyder 有的能够直接在终端中用命令行启动,否则设置别名:

    alias spyder="nohup sh /home/dai/miniconda3/bin/spyder &"
    

如果使用上面的方法安装的 Spyder 无法打开,那么可以考虑安装其它(低)版本的 Spyder,以避免一些不必要的 Bug。Bug 挺多的,可以换不同的版本试试。Spyder 的版本与 Python 的版本并无直接关系。

Conda init

前面使用 conda 命令时,总是需要先进入 conda 的目录,显得不方便。更合适的方法是将该路径加入 PATH 环境变量中。

conda init 的作用是自动将 conda的路径加入到环境变量(PATH)中,它会在 ~/.bashrc 文件中加入以下内容:

# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/dai/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/dai/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/dai/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/dai/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

如果需要在启动 terminal 时,进一步切换到其它环境,例如: sphinx (假设 virtual env 已存在)

# >>> activate sphinx
conda activate sphinx
# <<< activate sphinx    

安装第3方 Packages

如果安装了 pyenv,那么打开终端时,总是在 pyenv 的虚拟的 python 环境中。首先要切换到 Spyder 所用的 Python 环境下。

找到并进入 minconda 的安装目录,例如:

cd /home/dai/miniconda3/bin/

如果没有安装 pyenv 等虚拟 Python 环境管理器,那么只需使用 conda 命令激活相应的环境后,即可使用 conda 安装所需第3方包。

用conda 或 pip 安装第3方包,例如:

conda install numpy
conda install spyder

或者:

./pip install scipy            #/// 指定用本目录中的 pip,而不是其它 pip

pip 在这里又成了 Python 的一个包管理器。从这点上讲 conda 是一个比 pip 层级更高的复合体。有些包只有 pip 源,没有 conda 源。

Spyder 设置常见问题

Spyder ini 文件位置

2023-11-30

在配置 Spyder 设置项(Spyder 软件的图形设置界面) 后,就启动不了 Spyder 了,可能是设置了不存在或不正确的绘图的引擎。此时可以先还原 spyder.ini 文件。

对于通过 anaconda (miniconda) 安装的 spyder 软件,其配置文件的位置为:

/home/dai/.config/spyder-py3/config/spyder.ini

最好的办法是在进行一些危险的配置前先做好配置文件的备份,出问题后直接从备份还原。

用 Pip 安装 Spyder

spyder 也可以通过 pip 安装。但并不推荐此方法,因为 pip 管理的 python 版本可能五花八门,很多时候与 spyder 的依赖冲突。而 anacodna 提供的安装包,一般会对 spyder 支持得更好。

下面记录曾经安装成功的过程,不推荐采用。

How to install Spyder 5.4 (and replace Spyder 4.2.1) on Ubuntu 22.04 - Silicon's blog

  1. remove the old spyder

    cd ~
    sudo apt purge spyder -y
    sudo apt autoremove
    
  2. install the spyder 5

    pip install spyder
    
  3. softlink thd start scripts

    Note: 没有在以下路径找到 spyder 的有关文件

    sudo ln -s /home/your_username/.local/bin/spyder /usr/bin/spyder
    
  4. start spyder from shell

    spyder
    

后记

用 which spyder 看到 spyder 程序位于 .pyenv/shims 目录下。问题是 shims 是谁建立的呢?

进一步观察发现,自制 setup 的命令通过 pip 都是安装在 .pyenv/shims 目录下。

然后再查了一下 shims 目录,看得懂的信息就不多了。

Python多环境管理——pyenv - 知乎

如果坚持在 conda 下使用 spyder,则不用理会下面的问题。

然而,是否可以在 Pyenv 中安装 Spyder 呢?

Spyder 是否可以使用 Pyenv 中的 Python 解释器?

在A机器上安装了 Spyder,其 Python interpreter 只能使用 miniconda 带的 python。否则会提示版本错误,版本不兼容。

而 B 机器用同样的方法安装 Spyder,可以使用 pyenv 下的 python。比较混乱。

Spyder 所要求的 python 版本要与 pyenv 中的 python 版本要兼容,不能出现矛盾的需求。