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。这比从源代码编译要方便得多,而且能更好地与系统包管理集成。
添加
deadsnakesPPA: 这个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.2pyenv的原理是通过修改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_envconda的环境管理能力非常强大,但它的体积相对较大,并且在某些情况下可能会与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盒模型详解与应用技巧
- 上一篇
- CSS盒模型详解与应用技巧
- 下一篇
- 通灵义码使用教程:高效操作指南
-
- 文章 · linux | 3小时前 |
- Linux查看所有用户命令大全
- 140浏览 收藏
-
- 文章 · linux | 5小时前 |
- Linux系统更新与补丁管理技巧
- 218浏览 收藏
-
- 文章 · linux | 6小时前 |
- LinuxShell脚本入门教程指南
- 333浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux终端乱码解决方法大全
- 442浏览 收藏
-
- 文章 · linux | 9小时前 |
- LINUX数字排序技巧:月份版本高效排序方法
- 388浏览 收藏
-
- 文章 · linux | 9小时前 | GRUB update-grub Linux启动顺序 /etc/default/grub GRUB_DEFAULT
- Linux调整启动顺序全攻略
- 245浏览 收藏
-
- 文章 · linux | 10小时前 |
- Linux僵尸进程是什么?如何解决?
- 406浏览 收藏
-
- 文章 · linux | 15小时前 |
- LinuxRAID配置教程及搭建方法
- 412浏览 收藏
-
- 文章 · linux | 16小时前 |
- iftop与nload网络监控使用详解
- 466浏览 收藏
-
- 文章 · linux | 17小时前 |
- Linuxroot密码找回与重置教程
- 456浏览 收藏
-
- 文章 · linux | 1天前 |
- Linux用mkdir创建文件夹方法
- 226浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3191次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3403次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3434次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4541次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 3812次使用
-
- 命令行工具:应对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浏览

