Python Interpreter for Spyder

Question

一个 Spyder 可以配置多个 python interpreter。知道 spyder 后台的 python interpreter 环境,有利于针对该环境安装第3方包。

有时搞清楚 spyder 后的interpreter 不那么容易。

条件: 利用专门的 Spyder for Windows 安装包安装了全新的 Spyder (C:\Program Files\Spyder5\Python\python.exe,简称 python-spyder5

注意

另一个值得注意的问题是,一个特定版本的 Spyder 并不一定能支持任意版本的 Python interpreter,即在 Spyder 下添加这些版本的 Python 解释器时,总是会失败。 或者,在某些版本的 Python 上无法成功安装 Spyder,因为总是找不到不发生冲突的依赖。

try 1

conda env list

结果看不到该环境。也就是说将来不能用 conda 换到该环境中来,该环境成了名符其实的独立环境。

那么将来怎么给该环境安装 package?必要时,还是得在 conda 中新建环境。

Try 2

打开 Spyder → Tools → Preference → 查看 Spyder's Default interpreter 是什么?

也没有结果

Try 3

在 ipython 中用 where 查看:

!where python
C:\Users\dai\AppData\Local\Microsoft\WindowsApps\python.exe

进入该目录查看到该文件为 0KB

初步说明不可能它不是 spyder 后的真正的 interpreter。它是什么? 暂且简称 python-unknown

!!! note 这是错误的方法! 在 spyder 内部用 where 查看到的 python 路径和直接在 cmd (未进入任何 python环境) 中运行 where 结果相同。事实上经过测试该 python.exe 文件不起任何作用。

try 4

然后在 Python interpreter 中选择指定为 python-unknown, Spyder 会报错。再次说明此处 python.exe 不是 spyder 后的 interpreter。

try 5

再将 Python interpreter 指定为 python-spyder5。但是重启Spyder,会有一个 debug 会丢失断点的警告。但能使用。

try 6

分别选择 python-spyder5 和 Default 作为Spyder 的 interpreter, 利用下面列出所有已安装的包

import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = list(installed_packages)

比较后发现两者完全相同。这说明可以放心使用 Default,它的背后实际是 Python-Spyder5

Conclusion

  1. 未能发现一个 Spyder 能切换不同的 interpreter

  2. Conda 的 python interpreter 到底是谁,没有搞明白。好在独立安装好的 Spyder 环境已提供了较丰富的包。

  3. 如果需要管理更多的环境,请使用 Pycharm.