linux怎么查看Python版本_linux切换系统python环境【必看】

星瑶小哥_5449

星瑶小哥_5449

2026-03-17

368人浏览

原创

应优先用 which python 查真实路径再显式调用确认版本,注意 virtualenv/pyenv 影响、shebang 风险及系统服务兼容性,切换后务必在目标上下文验证。

linux怎么查看python版本_linux切换系统python环境【必看】

查 Python 版本:别只信 python --version

Linux 上 python 命令可能指向 Python 2 或 Python 3,甚至根本不是系统默认的解释器。直接运行 python --version 容易误判当前实际使用的版本。

  • 优先用 which python 看命令真实路径,再配合 /usr/bin/python --version 显式调用确认
  • 检查软链接:比如 ls -l /usr/bin/python,常会发现它指向 python2.7python3.9
  • 终端里已激活 virtualenv 时,python 指向的是虚拟环境内的解释器,which python 结果会是类似 ~/venv/bin/python
  • 想看所有可用版本?试试 ls /usr/bin/python*pyenv versions(如果装了 pyenv)

切换系统级 Python 默认:update-alternatives 是正解

Ubuntu/Debian 系发行版用 update-alternatives 管理多版本共存,比手动改 /usr/bin/python 软链接安全得多;CentOS/RHEL 通常没预装该工具,需先 yum install alternatives 或改用 ln -sf(但风险更高)。

  • 先注册候选版本:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2
  • 交互式切换:sudo update-alternatives --config python,选编号即可
  • 切完务必验证:python --version + python -c "import sys; print(sys.executable)"
  • 注意:某些系统服务(如 apt 脚本)硬编码依赖 /usr/bin/python2/usr/bin/python3,改 /usr/bin/python 不影响它们,别乱动

virtualenv 和 pyenv 切换:项目级隔离才靠谱

系统级切换影响全局,多数开发场景真正需要的是 per-project 环境隔离。virtualenv(或 venv)和 pyenv 各有定位:前者管「同一 Python 版本下的包隔离」,后者管「不同 Python 版本间的解释器切换」。

  • 新建项目环境:python3.9 -m venv myprojectsource myproject/bin/activate → 此时 python 就是 3.9
  • 用 pyenv 装新版本:pyenv install 3.11.8pyenv local 3.11.8(当前目录生效)或 pyenv global 3.11.8(用户级)
  • pyenv 的 shims 机制会拦截 python 调用,所以必须确保 ~/.pyenv/shims$PATH 最前面,否则 which python 还是看到系统原版
  • 冲突常见于 shell 初始化文件(~/.bashrc~/.zshrc)里 pyenv 初始化代码被注释或位置靠后

Python 脚本开头写 #!/usr/bin/env python 很危险

这行 shebang 看似通用,实则把执行权完全交给当前 $PATH 中第一个 python,而这个顺序受 shell 配置、virtualenv 激活状态、pyenv shims 影响极大,极难预测。

  • 生产脚本建议写死路径,比如 #!/usr/bin/python3.9#!/home/user/.pyenv/versions/3.11.8/bin/python
  • 若必须兼容多环境,改用 #!/usr/bin/env python3,至少限定主版本,避免 Python 2/3 混淆
  • file script.py 可查看脚本是否真的按预期解析(输出里会带 interpreter 路径)
  • 在 systemd service 或 cron 里跑脚本时,$PATH 和交互式 shell 完全不同,shebang 写得模糊 = 定期出问题
事情说清了就结束。最麻烦的从来不是“怎么切”,而是切完之后谁在用、在哪用、用的时候有没有被其他层(shell、systemd、IDE、CI)悄悄覆盖掉——每次切完,都值得在目标上下文里亲手敲一遍 which pythonpython -c "print(__import__('sys').version)"

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2220

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

229

24

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3113

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2153

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5110

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4802

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2893

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2385

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习