Ubuntu安装Python3及环境配置教程
学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《Ubuntu安装最新Python及环境配置教程》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!
最直接的方法是通过deadsnakes PPA安装最新Python版本,并用venv创建隔离环境。首先添加PPA并更新包列表:sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update;接着安装指定版本如Python 3.12:sudo apt install python3.12 python3.12-venv python3.12-dev;验证安装:python3.12 --version;然后为项目创建独立虚拟环境:python3.12 -m venv .venv,激活环境:source .venv/bin/activate,在此环境中使用pip安装依赖,避免影响系统Python。推荐结合VS Code或PyCharm等IDE,使用requirements.txt锁定依赖,配合Black、Flake8等工具进行代码格式化与检查,提升开发效率与代码质量。
要在Ubuntu系统上安装最新版本的Python并快速配置开发环境,最直接且推荐的方法是利用deadsnakes
PPA来安装指定版本,然后配合venv
创建隔离的开发环境,确保系统稳定性的同时,也能享受到最新Python带来的便利。
解决方案
在我看来,为Ubuntu安装最新Python,最省心的方式莫过于使用deadsnakes
PPA。这比从源代码编译要方便得多,而且能更好地与系统包管理集成。
添加
deadsnakes
PPA: 这个PPA提供了许多Python的最新版本,而且维护得很好。sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update
执行
add-apt-repository
时,系统可能会提示你按回车确认,照做就行。apt update
是为了确保你的包列表是最新的,这样才能找到PPA里提供的Python版本。安装特定版本的Python: 假设你想安装Python 3.12,命令就是:
sudo apt install python3.12 python3.12-venv python3.12-dev
这里我特意加了
python3.12-venv
和python3.12-dev
。venv
模块对于创建虚拟环境至关重要,而dev
包(开发头文件和静态库)在你需要编译一些Python扩展(比如numpy
或psycopg2
等需要C语言编译的库)时会派上大用场。提前装好能省去不少麻烦。验证安装: 安装完成后,你可以通过以下命令检查Python版本:
python3.12 --version
它应该会显示你刚刚安装的版本号,例如
Python 3.12.x
。配置开发环境(使用
venv
): 现在你有了新版本的Python,但直接在系统级别使用它作为默认Python并不是一个好主意,因为Ubuntu的许多核心工具都依赖于特定的Python版本。最好的实践是为每个项目创建独立的虚拟环境。创建项目目录并进入:
mkdir my_new_project cd my_new_project
创建虚拟环境: 使用新安装的Python版本来创建虚拟环境。
python3.12 -m venv .venv
这里我习惯性地将虚拟环境命名为
.venv
,因为它通常会被Git忽略,而且大多数IDE都能自动识别。激活虚拟环境:
source .venv/bin/activate
激活后,你的命令行提示符通常会显示虚拟环境的名称(例如
(.venv)
),这意味着你现在使用的python
和pip
命令都指向这个虚拟环境中的Python 3.12。安装依赖: 现在你可以在这个隔离的环境中安装项目所需的任何库,而不会影响到系统的其他Python安装。
pip install requests flask
退出虚拟环境: 当你完成工作或者需要切换到另一个项目时,可以简单地退出虚拟环境:
deactivate
为什么不直接使用Ubuntu自带的Python版本?
说真的,这是个老生常谈的问题,但它的重要性不容忽视。Ubuntu,尤其是LTS(长期支持)版本,自带的Python通常是为了系统自身的稳定性和兼容性而选择的。这意味着它可能是一个相对较旧的版本,比如Ubuntu 22.04 LTS默认是Python 3.10。对于系统维护者来说,一个稳定的、经过充分测试的Python版本是核心,他们不会轻易去升级它,因为这可能导致像apt
、snap
等关键系统工具出现意想不到的问题。
但对于开发者而言,我们往往需要最新或较新的Python版本,原因有很多:
- 新特性和性能优化: Python的每个新版本都会带来语法糖、标准库的改进以及显著的性能提升。例如,Python 3.11和3.12在运行时性能上都有不小的飞跃。
- 库的兼容性: 很多新的第三方库或者现有库的新版本会要求更高版本的Python。如果你还在用旧版本,可能就无法使用这些新功能,甚至无法安装某些库。
- 开发习惯与潮流: 作为一个开发者,我们总希望能够使用最新的工具和技术来提升效率和代码质量。
- 安全性更新: 虽然旧版本也会有安全补丁,但新版本通常会包含更多最新的安全改进。
所以,在我看来,直接使用自带的旧版本Python来开发新项目,无异于给自己挖坑。而直接替换系统默认的Python版本,那更是“自杀式”行为,除非你清楚自己在做什么,否则分分钟让系统崩溃。这就是为什么我们宁愿多折腾一步,通过PPA或者编译来安装新版本,然后用虚拟环境进行隔离。
如何在不影响系统Python的情况下管理多个Python版本?
管理多个Python版本而不干扰系统,这简直是现代Python开发者的必备技能。除了上面提到的venv
,还有一些其他策略和工具,它们各有侧重,但核心思想都是“隔离”。
虚拟环境(
venv
): 这是最基础也是最推荐的方案,我已经详细解释了它的用法。它的好处在于轻量级、易于理解和使用,并且Python标准库自带,无需额外安装。每个项目都可以有自己的虚拟环境,里面安装自己独立的依赖包,互不干扰。这就像给每个项目一个独立的沙盒,你可以在里面随意折腾,不用担心弄乱其他项目或系统。pyenv
: 对于需要在系统层面频繁切换不同Python版本的开发者来说,pyenv
是一个非常强大的工具。它允许你在同一台机器上安装多个Python版本(包括各种补丁版本),并且可以轻松地在全局、用户级别或项目级别切换。- 安装: 通常通过
git clone
到~/.pyenv
目录,然后配置shell的PATH变量。 - 安装Python版本:
pyenv install 3.12.2
- 设置全局版本:
pyenv global 3.12.2
- 设置局部版本(在项目目录中):
pyenv local 3.12.2
pyenv
的原理是通过修改PATH
环境变量,拦截python
命令,使其指向你所选的版本。它不会真正地“安装”Python到系统路径,而是将其安装在用户目录下。这对于需要测试不同Python版本兼容性的库作者或维护者来说尤其有用。不过,对于大多数日常项目开发,配合deadsnakes
和venv
已经足够了,pyenv
可能略显“重型”。
- 安装: 通常通过
conda
(Anaconda/Miniconda): 如果你主要从事数据科学、机器学习等领域,或者需要管理非Python的二进制依赖(如CUDA),那么conda
是一个非常强大的环境和包管理器。它不仅能管理Python版本,还能管理几乎任何语言的包和环境。- 安装: 下载并运行Miniconda或Anaconda安装程序。
- 创建环境:
conda create -n my_data_env python=3.10 numpy pandas
- 激活环境:
conda activate my_data_env
conda
的环境管理能力非常强大,但它的体积相对较大,并且在某些情况下可能会与pip
产生一些微妙的冲突。对于纯Python应用开发,venv
通常是更轻量和直接的选择。
综合来看,对于快速配置开发环境,venv
是首选,它足够简单,功能也足够强大。如果你需要更复杂的版本管理,再考虑pyenv
或conda
。
配置Python开发环境有哪些推荐的工具和实践?
配置一个高效且愉快的Python开发环境,不仅仅是安装Python本身,还需要一系列工具和良好的实践。在我看来,以下这些是不可或缺的:
集成开发环境(IDE)或代码编辑器:
- VS Code (Visual Studio Code): 免费、轻量级、高度可定制,拥有强大的Python扩展(由Microsoft官方维护),支持代码补全、调试、Linter集成、虚拟环境识别等。这是我个人最常用的。
- PyCharm (Community Edition): 专为Python开发设计,功能非常强大,尤其在代码导航、重构、测试和调试方面表现出色。社区版免费,专业版功能更全。如果你需要一个“开箱即用”且功能全面的IDE,PyCharm是极好的选择。
包管理和依赖锁定:
pip
: Python的官方包安装器,我们已经用它来安装库了。requirements.txt
: 这是锁定项目依赖的黄金标准。在你的虚拟环境中安装完所有依赖后,使用pip freeze > requirements.txt
命令可以生成一个包含所有精确版本依赖的文件。这样,你的团队成员或你在新机器上设置项目时,只需pip install -r requirements.txt
即可复现相同的环境。pip-tools
: 如果你觉得requirements.txt
管理起来有点粗糙,pip-tools
(包含pip-compile
和pip-sync
)可以提供更精细的控制,让你只声明顶级依赖,然后自动生成一个带有所有精确版本的requirements.txt
。
代码格式化和静态分析(Linting):
Black
: 一个“不妥协”的代码格式化工具。它的哲学是“格式化是自动的,没有配置项”,这样可以消除团队内部关于代码风格的争论。Flake8
: 结合了pyflakes
(检查错误)和pycodestyle
(检查PEP 8规范)的工具。它能帮你找出代码中的潜在错误和不符合PEP 8风格的地方。isort
: 自动排序导入语句,让你的import
块整洁有序。 将这些工具集成到你的IDE中(VS Code和PyCharm都有很好的支持),可以在你编写代码时实时提供反馈,大大提升代码质量和一致性。
版本控制系统:
Git
: 毋庸置疑,这是现代软件开发的基石。掌握Git
的基本操作(add
,commit
,push
,pull
,branch
,merge
)是每个开发者的基本功。配合GitHub、GitLab或Bitbucket等平台,可以实现高效的团队协作和代码管理。
交互式开发和数据探索(可选):
- Jupyter Notebook/Lab: 对于数据分析、机器学习原型开发或教学演示,Jupyter系列工具提供了强大的交互式环境,可以混合代码、文本、图像和图表。
这些工具和实践共同构成了一个健壮、高效且愉快的Python开发生态系统。一开始可能觉得东西有点多,但随着你逐渐熟悉并采纳它们,你会发现它们能显著提升你的开发体验和代码质量。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

- 上一篇
- CSS盒模型详解与应用技巧

- 下一篇
- 通灵义码使用教程:高效操作指南
-
- 文章 · linux | 1小时前 |
- Linux高可用数据库部署教程
- 377浏览 收藏
-
- 文章 · linux | 15小时前 | Linux 服务器 重启 systemctl shutdown-r
- Linux系统关机重启设置教程
- 286浏览 收藏
-
- 文章 · linux | 19小时前 |
- Linux安装tar.gz软件全流程详解
- 368浏览 收藏
-
- 文章 · linux | 20小时前 |
- Linux历史命令查看技巧分享
- 176浏览 收藏
-
- 文章 · linux | 1天前 |
- Linuxapt与yum配置技巧全解析
- 501浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 499次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- PandaWiki开源知识库
- PandaWiki是一款AI大模型驱动的开源知识库搭建系统,助您快速构建产品/技术文档、FAQ、博客。提供AI创作、问答、搜索能力,支持富文本编辑、多格式导出,并可轻松集成与多来源内容导入。
- 399次使用
-
- AI Mermaid流程图
- SEO AI Mermaid 流程图工具:基于 Mermaid 语法,AI 辅助,自然语言生成流程图,提升可视化创作效率,适用于开发者、产品经理、教育工作者。
- 1182次使用
-
- 搜获客【笔记生成器】
- 搜获客笔记生成器,国内首个聚焦小红书医美垂类的AI文案工具。1500万爆款文案库,行业专属算法,助您高效创作合规、引流的医美笔记,提升运营效率,引爆小红书流量!
- 1217次使用
-
- iTerms
- iTerms是一款专业的一站式法律AI工作台,提供AI合同审查、AI合同起草及AI法律问答服务。通过智能问答、深度思考与联网检索,助您高效检索法律法规与司法判例,告别传统模板,实现合同一键起草与在线编辑,大幅提升法律事务处理效率。
- 1214次使用
-
- TokenPony
- TokenPony是讯盟科技旗下的AI大模型聚合API平台。通过统一接口接入DeepSeek、Kimi、Qwen等主流模型,支持1024K超长上下文,实现零配置、免部署、极速响应与高性价比的AI应用开发,助力专业用户轻松构建智能服务。
- 1287次使用
-
- 命令行工具:应对Linux服务器安全挑战的利器
- 2023-10-04 501浏览
-
- 如何使用Docker进行容器的水平伸缩和负载均衡
- 2023-11-07 501浏览
-
- linux .profile的作用是什么
- 2024-04-07 501浏览
-
- 如何解决s权限位引发postfix及crontab异常
- 2024-11-21 501浏览
-
- 如何通过脚本自动化Linux上的K8S安装
- 2025-02-17 501浏览