Linux查看Python版本及系统信息方法
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是文章学习者,那么本文《Linux下查看Python版本的系统信息方法》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!
- 查看Python版本最直接的方法是使用命令 python --version 或 python3 --version;2. 要确定Python可执行文件路径,使用 which python 或 which python3;3. 通过 ls -l /usr/bin/python* 可查看系统中所有Python相关软链接和实际版本;4. Debian/Ubuntu系统可用 update-alternatives --display python 查看版本管理配置;5. RHEL/CentOS系统可通过 rpm -qa | grep python 查询已安装的Python相关包;6. 虚拟环境中显示的版本仅限该环境,需退出后重新检查才能获取系统全局版本;7. 系统自带Python用于系统工具运行,开发者安装的Python用于项目需求,虚拟环境则提供项目级隔离;8. 推荐使用 pyenv 管理多版本Python,避免修改系统Python;9. conda 适合数据科学场景,提供完整的环境与依赖管理;10. 使用 venv 可创建轻量级虚拟环境实现项目依赖隔离;11. 遇到“command not found”时需检查Python是否安装及PATH是否包含其路径;12. 当版本显示不一致时,应检查软链接指向和虚拟环境状态;13. pip与python不匹配会导致包无法导入,应使用 python -m pip install 确保一致性;14. 环境变量未持久化会导致终端重启后配置失效,需将设置写入 ~/.bashrc 或 ~/.zshrc 并执行 source 命令生效。正确理解PATH、软链接和虚拟环境机制是解决Python版本管理问题的关键。
在Linux系统里,想知道当前装的Python是哪个版本,最直接的方法就是打开终端,敲入 python --version
或者 python3 --version
。这能迅速告诉你系统默认或你正在使用的Python解释器版本号。但如果想深入了解更多,比如它的安装路径、是不是多个版本并存,那就要用点别的招数了。
要全面摸清Linux系统里Python的底细,光看版本号还不够。我通常会这么操作:
最基础的当然是:
python --version # 或者如果你主要用Python 3 python3 --version
这给的是当前默认或者你命令行里直接调用的那个Python版本。但很多时候,系统里不止一个Python。
想知道这个Python可执行文件到底在哪儿?用 which
命令:
which python which python3
这会告诉你它的绝对路径,比如 /usr/bin/python
。知道了路径,你就能推测它是不是系统自带的,还是通过其他方式安装的。
进一步地,如果想看系统里可能存在的其他Python可执行文件,尤其是那些通过软链接指向的:
ls -l /usr/bin/python*
这能列出 /usr/bin/
下所有以 python
开头的文件或软链接,经常能发现 python
指向 python2.7
或 python3.8
这样的真实版本。
对于Debian/Ubuntu系的用户,系统可能通过 update-alternatives
管理多个Python版本。查看它能让你对系统层面的Python配置有个清晰的认识:
update-alternatives --display python
这会显示 python
这个命令当前指向哪个具体的Python版本,以及有哪些备选。
如果是RHEL/CentOS,通过包管理器查询也是个办法,能看到安装了哪些Python相关的RPM包:
rpm -qa | grep python
这会列出所有已安装的包含“python”关键词的RPM包,虽然不直接显示“当前版本”,但能提供一个包管理层面的视角。
最后,别忘了虚拟环境(venv或conda)。如果你在一个激活的虚拟环境里,python --version
显示的是虚拟环境里的版本,而不是系统全局的。退出虚拟环境再查,才能看到全局的。这一点,我踩过不少坑,以为系统Python版本变了,结果只是忘了退出 venv
。
为什么我的Linux系统里有多个Python版本?它们有什么区别?
这个问题,几乎每个在Linux上做Python开发的人都会遇到。我的电脑上,光是“Python”这个名字,可能就对应着好几个实际的解释器。这主要有几个原因:
Linux系统本身需要Python。很多系统工具、脚本(比如yum
、apt
等)都是用Python编写的。这些系统级别的Python版本(通常是Python 2.x,或者较旧的Python 3.x)是系统正常运行的基石,你不能轻易动它,否则系统可能就“瘫痪”了。它们通常安装在 /usr/bin/python
或 /usr/bin/python2
这类路径下。
作为开发者,我们可能需要更新、更特定版本的Python。比如,系统自带的是Python 3.6,但你的项目需要Python 3.9的新特性。这时候,你可能会通过 pyenv
、asdf
或者直接从源代码编译安装一个新的Python版本。这些版本通常安装在用户目录下(如 ~/.pyenv/versions/
)或者 /usr/local/bin/
。它们是为开发目的而生,与系统Python相互独立。
再者,虚拟环境(venv
、conda
、virtualenv
等)也是“多个Python版本”的体现。每个虚拟环境都创建了一个独立的Python解释器副本和包管理空间。这样做的好处是,不同项目的依赖包可以完全隔离,避免版本冲突。你在这个环境里安装的任何库,都不会影响到系统全局的Python或者其他项目的Python环境。这是我日常开发中最常用的方式,能有效避免“依赖地狱”。
简而言之,系统Python是给系统用的,开发者安装的Python是给你自己项目用的,而虚拟环境里的Python是给特定项目“量身定制”的。理解这三者的区别,是高效管理Python环境的关键。
如何安全地管理和切换Linux上的Python版本?
管理Linux上的Python版本,最核心的原则就是:永远不要直接修改或删除系统自带的Python。这是个雷区,踩了轻则某个命令跑不起来,重则系统都可能无法启动。我的经验是,最好使用专门的工具来处理。
我个人最推荐的是 pyenv
。它是一个Python版本管理工具,允许你在同一台机器上安装和管理多个Python版本,并且可以轻松地在不同版本之间切换。它的工作原理是修改你的 PATH
环境变量,让 python
命令指向你当前选择的版本。安装 pyenv
后,你可以用它安装任意Python版本:
pyenv install 3.9.12 pyenv global 3.9.12 # 设置全局默认版本 pyenv local 3.8.10 # 为当前目录设置特定版本
pyenv
的好处在于,它将不同版本的Python安装在用户目录下,不会和系统Python冲突。
另一个流行的选择是 conda
(Miniconda或Anaconda)。如果你主要做数据科学或机器学习,conda
提供了强大的环境管理功能,不仅能管理Python版本,还能管理各种科学计算库及其依赖。它的环境隔离做得非常好:
conda create -n myenv python=3.9 conda activate myenv
conda
的生态系统非常完善,但相比 pyenv
来说,它更“重”一些。
对于轻量级的项目隔离,Python自带的 venv
模块是首选。它不需要额外安装工具,直接就能用:
python3 -m venv myproject_env source myproject_env/bin/activate
每次进入项目目录时激活对应的虚拟环境,就能确保项目依赖的独立性。这是我处理多数项目依赖的默认方式,简单直接,效率很高。
对于Debian/Ubuntu用户,如果你确实需要在系统层面调整 python
命令的指向(例如,让 python
默认指向 python3
而不是 python2
),可以使用 update-alternatives
。但这需要谨慎操作,并且通常只推荐给那些明确知道自己在做什么的系统管理员:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 sudo update-alternatives --config python
这个命令会提示你选择 python
命令应该指向哪个具体的解释器。但请记住,这会影响到所有依赖 python
命令的系统脚本。所以,除非万不得已,我更倾向于在用户层面通过 pyenv
或虚拟环境来管理。
检查Python版本时可能遇到的常见问题和解决方案
在Linux上查看或使用Python时,总会遇到些让人头疼的小状况。我总结了几类常见问题,希望能帮你少走弯路。
问题1:python: command not found
或 python3: command not found
这通常意味着Python解释器不在你的 PATH
环境变量里,或者根本就没安装。
- 解决方案:
- 确认是否真的安装了Python。新装的Linux系统可能默认只带Python 2,或者根本没装。
- 检查
PATH
环境变量:echo $PATH
。看看Python的安装路径(比如/usr/bin
或~/.pyenv/shims
)是否在其中。如果不在,需要添加到.bashrc
或.zshrc
文件中并source
更新。 - 如果使用了
pyenv
或conda
,确保它们的环境变量设置正确,并且你已经pyenv init
或conda init
。
问题2:python --version
和 python3 --version
显示的版本不一致,或者和预期不符
这是多版本并存的典型表现。
- 解决方案:
- 明确你到底想用哪个Python。系统默认的
python
可能指向Python 2,而python3
才指向Python 3。 - 如果你在虚拟环境里,确保虚拟环境已激活。在激活的虚拟环境里,
python
命令通常会指向虚拟环境内部的Python版本。退出虚拟环境(deactivate
)再查,就能看到全局的Python版本。 - 检查软链接:
ls -l /usr/bin/python
可以看出python
命令实际指向哪个具体的解释器。
- 明确你到底想用哪个Python。系统默认的
问题3:pip
安装的包,在 python
里却找不到
这几乎可以肯定是你用的 pip
和 python
不是同一个解释器下的。比如,你用 pip2
安装了包,却想在 python3
里导入。
- 解决方案:
- 始终使用与你当前
python
版本对应的pip
。最稳妥的方式是:python -m pip install <package_name> python3 -m pip install <package_name>
这样就能确保
pip
是在当前python
解释器的上下文中运行的。 - 在虚拟环境里,激活环境后直接用
pip install
即可,它会自动关联到当前环境的Python。
- 始终使用与你当前
问题4:在新的终端会话中,之前设置的Python版本又变回去了 这通常是环境变量没有持久化的原因。
- 解决方案:
- 确保所有修改
PATH
或pyenv init
等命令都写入了你的 shell 配置文件,比如~/.bashrc
、~/.zshrc
或~/.profile
。每次打开新终端时,这些文件都会被执行,从而加载你的配置。修改后记得source ~/.bashrc
来立即生效。
- 确保所有修改
处理这些问题,关键在于理解Linux的 PATH
环境变量、软链接机制以及虚拟环境的隔离作用。多用 which
命令和 echo $PATH
,就能逐步理清头绪。
理论要掌握,实操不能落!以上关于《Linux查看Python版本及系统信息方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

- 上一篇
- JavaPOI操作Excel教程:读写表格指南

- 下一篇
- Win11截屏快捷键汇总及使用教程
-
- 文章 · python教程 | 1小时前 |
- Python内存回收机制全解析
- 160浏览 收藏
-
- 文章 · python教程 | 1小时前 |
- Python聊天机器人教程:NLTK与Rasa实战指南
- 480浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- Tkinter多Frame传值技巧全解析
- 444浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- Python首字母大写技巧详解
- 147浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- PyCharm图形显示问题解决方法汇总
- 224浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- 处理线段交点浮点精度问题技巧
- 402浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- Pythonwhile循环详解与使用技巧
- 412浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- Python协程怎么用?async/await详解
- 144浏览 收藏
-
- 文章 · python教程 | 2小时前 |
- Pandas多列条件提取技巧分享
- 148浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 511次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 498次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 千音漫语
- 千音漫语,北京熠声科技倾力打造的智能声音创作助手,提供AI配音、音视频翻译、语音识别、声音克隆等强大功能,助力有声书制作、视频创作、教育培训等领域,官网:https://qianyin123.com
- 127次使用
-
- MiniWork
- MiniWork是一款智能高效的AI工具平台,专为提升工作与学习效率而设计。整合文本处理、图像生成、营销策划及运营管理等多元AI工具,提供精准智能解决方案,让复杂工作简单高效。
- 124次使用
-
- NoCode
- NoCode (nocode.cn)是领先的无代码开发平台,通过拖放、AI对话等简单操作,助您快速创建各类应用、网站与管理系统。无需编程知识,轻松实现个人生活、商业经营、企业管理多场景需求,大幅降低开发门槛,高效低成本。
- 137次使用
-
- 达医智影
- 达医智影,阿里巴巴达摩院医疗AI创新力作。全球率先利用平扫CT实现“一扫多筛”,仅一次CT扫描即可高效识别多种癌症、急症及慢病,为疾病早期发现提供智能、精准的AI影像早筛解决方案。
- 134次使用
-
- 智慧芽Eureka
- 智慧芽Eureka,专为技术创新打造的AI Agent平台。深度理解专利、研发、生物医药、材料、科创等复杂场景,通过专家级AI Agent精准执行任务,智能化工作流解放70%生产力,让您专注核心创新。
- 135次使用
-
- Flask框架安装技巧:让你的开发更高效
- 2024-01-03 501浏览
-
- Django框架中的并发处理技巧
- 2024-01-22 501浏览
-
- 提升Python包下载速度的方法——正确配置pip的国内源
- 2024-01-17 501浏览
-
- Python与C++:哪个编程语言更适合初学者?
- 2024-03-25 501浏览
-
- 品牌建设技巧
- 2024-04-06 501浏览