如何查看电脑上有几个Python?
快速答案:要查看电脑上有几个 Python,不能只运行 python --version,因为它通常只显示当前命令行优先命中的那个版本。更可靠的做法是:先列出所有 Python 可执行文件路径,再逐个查看版本,并把“版本号 + 绝对路径 + 环境来源”作为判断依据。Windows 优先用 py -0p 和 where python;macOS、Linux 优先用 which -a python python3、type -a python python3;如果使用 conda、pyenv、虚拟环境,还要单独查看它们管理的解释器。
先明确:你要数的是版本、路径,还是环境
很多人搜索“如何查看电脑上有几个Python?”时,真正想知道的可能有三种情况:电脑装了几个 Python 版本、命令行里能调用到几个 Python、项目里创建了几个虚拟环境。这三者不是一回事。

可执行信息:可以先运行下面的命令查看当前正在使用的 Python:
python -c "import sys; print(sys.version); print(sys.executable)"
如果你的系统使用 python3 命令,则运行:
python3 -c "import sys; print(sys.version); print(sys.executable)"
判断标准:如果两个命令输出的是同一个绝对路径,例如都指向同一个 python.exe 或同一个 /usr/bin/python3,通常只能算一个解释器入口;如果版本号不同或路径不同,就要分别记录。最稳妥的统计方式是建立一个清单,包含版本号、绝对路径、来源,例如系统自带、python.org、Homebrew、conda、pyenv 或项目虚拟环境。
场景差异:同一台电脑可能有 Python 3.10、3.11、3.12 三个版本;也可能只有一个 Python 3.12,但项目里有多个 venv,每个虚拟环境都有自己的 python 启动文件。前者是“多个 Python 版本”,后者更准确地说是“多个 Python 环境”。
注意事项:python --version 只回答“当前命令会启动哪个 Python”,不能回答“电脑上一共有几个 Python”。如果要排查环境冲突、安装包装错位置、IDE 选择解释器失败,必须看 sys.executable 输出的路径。
Windows:优先用 py 启动器查看所有已注册版本
Windows 上最直接的方法是使用 Python Launcher,也就是 py 命令。它能列出已注册的 Python 版本,并显示路径。
可执行信息:打开命令提示符或 PowerShell,运行:
py -0p
也可以使用新版形式:
py --list-paths
典型输出可能类似:
-V:3.12 * C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe
-V:3.11 C:\Users\you\AppData\Local\Programs\Python\Python311\python.exe
判断标准:每一行代表一个可由 py 启动器识别的 Python 运行时。星号通常表示默认版本。你可以把不同路径的 python.exe 分别计数,并用下面的命令验证:
py -3.12 --version
py -3.11 --version
场景差异:如果你的 Python 是从 python.org 安装的,py -0p 通常很可靠;如果是 Microsoft Store 版本,py 可能不存在或无法列出该版本。这时要结合 where 命令检查:
where python
where python3
PowerShell 用户还可以运行:
Get-Command python -All
Get-Command python3 -All
注意事项:Windows 可能存在“应用执行别名”,即 python 命令指向 Microsoft Store 的占位入口,而不是真正的解释器。如果 where python 显示类似 WindowsApps\python.exe,但运行脚本失败,就需要到“设置 – 应用 – 高级应用设置 – 应用执行别名”里检查 Python 相关开关。统计 Python 数量时,不要把无法正常执行的 Store 占位入口当作真实 Python。
macOS 和 Linux:用 which、type 和常见目录一起查
macOS 和 Linux 上,一个 Python 版本可能来自系统、Homebrew、apt、yum、pyenv、conda 或手动编译安装。只看 /usr/bin 往往不够。
可执行信息:先查看命令行能找到哪些 Python:
which -a python python3
type -a python python3
然后分别查看版本和真实路径:
python3 -c "import sys; print(sys.version); print(sys.executable)"
如果 which -a 输出多个路径,例如:
/opt/homebrew/bin/python3
/usr/bin/python3
/Users/you/.pyenv/shims/python3
就要逐个执行对应路径:
/opt/homebrew/bin/python3 --version
/usr/bin/python3 --version
/Users/you/.pyenv/shims/python3 --version
判断标准:如果多个路径只是符号链接,可能最终指向同一个真实文件。Linux 可用 readlink -f 查看真实目标:
readlink -f $(which python3)
macOS 默认不一定有 readlink -f,可以先用:
ls -l $(which python3)
场景差异:Apple Silicon Mac 常见 Homebrew 路径是 /opt/homebrew/bin/python3;Intel Mac 常见路径是 /usr/local/bin/python3;Linux 服务器常见系统路径是 /usr/bin/python3。如果安装了 pyenv,命令优先命中的可能是 ~/.pyenv/shims/python,它本身是转发入口,不等于真实解释器路径。
注意事项:不要随意删除 /usr/bin/python3 这类系统 Python,它可能被系统工具依赖。你要做的是识别并选择合适版本,而不是清理所有看起来重复的 Python。
用 find 或 locate 搜索隐藏安装位置
如果命令行只能找到一个 Python,但你怀疑电脑里还有其他版本,可以搜索文件系统中的 Python 可执行文件。
可执行信息:macOS 和 Linux 可运行:
find /usr /usr/local /opt "$HOME" -name "python3*" -type f 2>/dev/null
如果系统启用了 locate 数据库,也可以运行:
locate bin/python3
Windows PowerShell 可以搜索常见安装目录:
Get-ChildItem -Path "$env:LOCALAPPDATA\Programs\Python","C:\Python*" -Filter python.exe -Recurse -ErrorAction SilentlyContinue
判断标准:搜索结果里只有能执行并能输出版本号的文件才应纳入统计。找到路径后,继续运行:
"完整路径/python3" --version
Windows 路径包含空格时要加引号,例如:
"C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe" --version
场景差异:开发者电脑常见多个来源混在一起:IDE 自带解释器、数据科学发行版、conda 环境、旧项目的虚拟环境、手动安装的 python.org 版本。服务器上则更常见系统包管理器安装的 Python 与源码编译安装的 Python 并存。
注意事项:find 全盘搜索会比较慢,也可能遇到权限错误。建议先查常见目录,不要一开始就从根目录全盘扫描。搜索到的 python-config、python3.12-config 不是解释器本体,不要计入 Python 数量。
conda 环境要单独统计
如果你使用 Anaconda、Miniconda 或 Mambaforge,电脑上可能有多个 conda 环境,每个环境都带有自己的 Python。此时仅用系统命令查 Python 会漏掉未激活环境里的解释器。
可执行信息:运行:
conda env list
或:
conda info --envs
查看每个环境的 Python 版本:
conda run -n 环境名 python --version
conda run -n 环境名 python -c "import sys; print(sys.executable)"
判断标准:每个 conda 环境里的 python 路径通常不同,例如 anaconda3/envs/data/bin/python、miniconda3/envs/web/python.exe。如果路径不同,就应视为不同环境;如果版本号也不同,说明不只是环境隔离,还是不同 Python 版本。
场景差异:数据分析用户可能有 base、pytorch、tensorflow、spider 等多个环境。它们不一定都显示在 where python 或 which -a python 中,因为只有当前激活环境会进入命令搜索路径。
注意事项:不要只看 base 环境的版本。很多“明明安装了包但运行时报 ModuleNotFoundError”的问题,本质是包安装在一个 conda 环境,程序却用另一个 Python 启动。
pyenv 用户要看 pyenv 管理的版本
pyenv 会在用户目录下管理多个 Python 版本,并通过 shim 控制当前项目使用哪个版本。看到 ~/.pyenv/shims/python 时,不要直接把 shim 当作真实 Python 版本。
pyenv versions
查看当前目录实际使用哪个版本:
pyenv version
查看真实解释器路径:
pyenv which python
python -c "import sys; print(sys.version); print(sys.executable)"
判断标准:pyenv versions 列出的每个版本都代表 pyenv 安装或可切换的 Python。真正统计时,应记录 pyenv which python 对应的真实路径,而不是只记录 shim 路径。
场景差异:全局默认版本、当前 shell 临时版本、项目目录里的 .python-version 可能不同。同一台电脑在桌面目录运行 python 是 3.12,在某个项目目录运行却是 3.10,这是 pyenv 的正常行为。
注意事项:排查项目问题时,一定要在项目根目录执行命令,因为 pyenv 会根据当前目录选择版本。离开项目目录后看到的 Python 数量和默认版本,可能与项目实际使用的不一致。
pip 不能直接告诉你有几个 Python
pip list 的作用是列出当前 Python 环境中已安装的第三方包,不是列出电脑上安装了多少个 Python。因此,用 pip list | grep Python | wc -l 来统计 Python 数量并不可靠。
可执行信息:正确用法是把 pip 绑定到具体解释器上,确认“这个 pip 属于哪个 Python”:
python -m pip --version
python -m pip list
Windows 可写成:
py -3.12 -m pip --version
py -3.11 -m pip --version
判断标准:python -m pip --version 通常会显示 pip 版本以及所在路径。这个路径可以帮助你判断 pip 属于哪个解释器。如果你用 pip install 安装包,却不清楚它对应哪个 Python,就优先改用 python -m pip install 包名。
场景差异:系统里可能有 pip、pip3、pip3.11、pip3.12 等多个命令。它们不一定对应同一个 Python。项目虚拟环境激活后,pip 又会切换到虚拟环境内部。
注意事项:不要把 pip 输出里的包名当成 Python 安装清单。pip 是管理包的工具,查看 Python 数量时只能作为辅助,不能作为主要依据。
快速汇总:按系统选择命令
Windows 可执行信息:
py -0p
where python
where python3
py -3.12 -c "import sys; print(sys.version); print(sys.executable)"
macOS / Linux 可执行信息:
which -a python python3
type -a python python3
python3 -c "import sys; print(sys.version); print(sys.executable)"
conda 可执行信息:
conda env list
conda run -n 环境名 python -c "import sys; print(sys.version); print(sys.executable)"
pyenv 可执行信息:
pyenv versions
pyenv which python
判断标准:最终统计时,以能正常运行的解释器为准。建议记录成下面这种格式:
Python 3.12.3 C:\Users\you\AppData\Local\Programs\Python\Python312\python.exe python.org
Python 3.11.8 /opt/homebrew/bin/python3.11 Homebrew
Python 3.10.13 /Users/you/miniconda3/envs/ml/bin/python conda: ml
场景差异:如果你只是想知道当前终端用哪个 Python,看 sys.executable 就够;如果你要清理旧版本、配置 IDE、修复包安装错环境的问题,就必须列出所有路径;如果你要复现项目环境,还要看项目里的 .venv、environment.yml、pyproject.toml 或 requirements.txt。
注意事项:看到多个 Python 不一定是坏事。问题通常不在“数量多”,而在“命令、pip、IDE、项目配置没有指向同一个解释器”。解决问题的关键是统一项目使用的 Python 路径。
常见问题
只运行 python –version 能知道电脑有几个 Python 吗?
不能。python --version 只能显示当前命令行优先找到的那个 Python。要知道电脑上有几个 Python,还要查看 where python、which -a python python3、py -0p、conda 环境和 pyenv 版本。
Windows 上 py -0p 和 where python 哪个更准?
两者关注点不同。py -0p 更适合查看已注册的 Python 运行时;where python 更适合查看当前 PATH 里哪些 python.exe 会被命令行找到。排查环境时建议两个都运行。
为什么我安装了 Python 3.12,但终端显示的是 Python 3.10?
通常是 PATH 顺序、pyenv 设置、conda 环境或虚拟环境激活状态导致的。运行 python -c "import sys; print(sys.executable)" 查看实际启动路径,再调整 IDE 或终端使用的解释器。
虚拟环境里的 Python 要算一个 Python 吗?
如果你关心“电脑里有多少个可运行入口”,可以算;如果你关心“安装了多少个基础 Python 版本”,虚拟环境通常不单独算版本。虚拟环境更多是项目隔离环境,它可能复用某个基础 Python,也可能复制出独立启动文件。
可以删除旧版本 Python 吗?
可以,但要先确认它不是系统工具、项目、IDE、conda 环境或 pyenv 配置正在使用的解释器。删除前记录路径,检查项目配置,并避免删除系统目录中的 Python。
参考文献
原创文章,作者:钱林雅,如若转载,请注明出处:https://www.wanglitou.cn/article_44776.html
微信扫一扫