说实话,刚开始接触 Linux 的时候,那感觉就像是打开了一个潘多拉的盒子,既好奇又带着点儿慌张。啥玩意儿都得敲命令,图形界面?有时候那玩意儿慢得让人抓狂。尤其是想跑点自己写的小脚本,或者跟上最新的技术潮流,比如玩玩人工智能啥的,那 Python 是绕不过去的坎儿。可 Linux 系统里,安装 Python 这事儿,嘿,不像 Windows 里点个“下一步”那么简单,里头弯弯绕还真不少。今天,我就想跟你聊聊,这 Linux 上装 Python 的那些事儿,都是我一步步摸索、踩坑,最后总结出来的经验,希望能让你少走点弯路。

你可能会问,系统里不是自带 Python 吗?确实,大多数 Linux 发行版都会预装一个 Python 版本,通常是 Python 2.x 或者一个比较老的 Python 3.x。但问题来了,自带的 Python 版本往往不是最新的,或者跟你想用的特定库不兼容。更要命的是,系统的一些核心功能,比如包管理器 yum 或 apt,就是依赖这个系统自带的 Python 跑的。你要是手贱去升级或者修改它,轻则某个命令不好使,重则系统直接给你撂挑子,启动都成问题。相信我,那种“系统瘫痪”的无力感,你绝对不想体验。

所以,咱得学会一种“安全”且“灵活”的方式来 安装 Python。这主要有两种思路:一种是利用系统自带的包管理器,另一种是自己编译安装或者使用第三方工具。

先说第一种,用包管理器安装 Python。这可是 Linux 里最常用的软件安装方式,方便快捷,依赖关系啥的系统都帮你搞定。比如在基于 Debian/Ubuntu 的系统上,你可以用 apt

bash
sudo apt update # 先更新一下软件源列表,好习惯!
sudo apt install python3 # 安装最新的Python 3,通常会拉取仓库里最新的版本
sudo apt install python3-pip # 装Python包得用pip,这个也得装上

要是你用的是基于 RHEL/CentOS/Fedora 的系统,那就是 yum 或者 dnf 的天下了:

bash
sudo yum update # 或者 sudo dnf update
sudo yum install python3 # 或者 sudo dnf install python3
sudo yum install python3-pip # 或者 sudo dnf install python3-pip

这方法简单粗暴,安装 Python 是没问题。但有个潜在的局限性:你能装的版本取决于你当前系统的软件源里提供了哪个版本。如果软件源比较老,你可能就装不上最新的 Python。而且,这种方式通常只给你装一个全局的 Python 版本,如果你同时开发好几个项目,每个项目依赖不同版本的 Python 或不同的库版本,那全局安装就容易出问题,著名的“依赖地狱”了解一下?

这时候,就得请出我们的第二种思路,也是我个人更推荐的方式:使用第三方工具或者自己编译安装。别一听“编译”就头大,现在很多工具已经把这事儿简化得不能再简单了。

其中一个非常流行的工具叫做 pyenv。这家伙简直就是 Python 版本管理的瑞士军刀。它的核心思想是:让你可以在同一台机器上安装和管理多个 Python 版本,并且可以针对不同的项目切换使用不同的版本,互相之间完全隔离,干净利落。装了 pyenv 之后,你想装哪个版本的 Python,比如最新的 3.10.4,或者为了兼容某个老项目想装个 3.6.9,都只需要一个命令:

“`bash

首先得安装pyenv,不同的系统方法不太一样,可以参考pyenv的官方文档,通常需要一些依赖库

比如在Ubuntu上可能需要:

sudo apt update
sudo apt install build-essential libssl-dev zlibg-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev \
xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

然后拉取pyenv的代码安装

curl https://pyenv.run | bash

接着配置你的shell环境,把pyenv的初始化命令加到你的 shell 配置文件里

比如 ~/.bashrc, ~/.zshrc 等

添加类似下面这几行(具体路径可能需要根据你的安装位置调整):

export PATH=”$HOME/.pyenv/bin:$PATH”
eval “$(pyenv init –path)”
eval “$(pyenv virtualenv-init -)”

重新加载你的shell配置,或者新开一个终端窗口

source ~/.bashrc # 或者 source ~/.zshrc

现在你就可以安装特定版本的 Python 了!

pyenv install 3.10.4 # 想装哪个版本就写哪个,pyenv 会自动帮你下载源码并编译
pyenv install 3.9.12
pyenv install 2.7.18 # 如果你真的需要老版本

安装好之后,你可以查看所有已安装的版本:

pyenv versions

设置全局默认版本:

pyenv global 3.10.4

或者针对当前目录设置项目特定的版本(在你项目根目录里执行):

pyenv local 3.9.12 # 这样进入这个目录,用的就是 3.9.12

想用回系统自带的 Python?

pyenv global system
“`

看到没?用 pyenv 安装 Python 并管理版本,是不是超方便?它通过修改环境变量的方式,巧妙地“劫持”了 python 命令,让你用的实际上是 pyenv 管理的那个版本。而且,pyenv 还有个配套工具叫 pyenv-virtualenv,用来管理 Python 的虚拟环境(Virtual Environment)。虚拟环境的好处是,每个项目都有自己独立的库环境,在这个环境里安装的库,不会影响到其他项目或者全局环境。这彻底解决了前面提到的“依赖地狱”问题。

“`bash

安装 pyenv-virtualenv (如果你是按照上面的 curl 方式安装 pyenv,它可能已经包含了)

如果没有,可以通过 pyenv 的插件机制安装

在 ~/.pyenv/plugins/ 目录下 git clone pyenv-virtualenv 的代码

创建一个基于某个 Python 版本的虚拟环境

pyenv virtualenv 3.10.4 my-project-env-3.10 # 基于 3.10.4 创建一个名为 my-project-env-3.10 的虚拟环境

激活虚拟环境

pyenv activate my-project-env-3.10

退出虚拟环境

pyenv deactivate

删除虚拟环境

pyenv uninstall my-project-env-3.10
“`

用了 pyenv 和 pyenv-virtualenv 这一套组合拳,你在 Linux 上安装 Python 的体验会好到飞起。无论是 安装 特定版本,还是管理项目依赖,都变得井井有条。

除了 pyenv,还有一些其他工具也能帮你管理 Python 版本,比如 Anaconda/Miniconda。Anaconda 是一个科学计算发行版,集成了 Python 和很多常用的科学计算库(如 NumPy, Pandas, SciPy, Matplotlib 等)。Miniconda 是 Anaconda 的精简版,只包含 Python 和一些核心工具,你可以根据需要自己安装库。Anaconda/Miniconda 也提供了类似虚拟环境的功能(conda environment)。对于做数据科学或者机器学习的朋友来说,安装 Anaconda/Miniconda 也是一个不错的选择。

安装 Anaconda/Miniconda 的过程也很简单,去官网下载对应的安装脚本(.sh 文件),然后在终端里运行它,跟着提示一步步来就行了。

“`bash

下载安装脚本,比如下载 Miniconda3 Linux 64-bit 的脚本

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本

bash Miniconda3-latest-Linux-x86_64.sh

跟着提示完成安装,安装器会让你同意协议,选择安装路径等

安装完成后,可能需要重新加载 shell 或者新开一个终端来让 conda 命令生效

创建一个新的 conda 环境

conda create -n my-conda-env python=3.9 # 创建一个名为 my-conda-env 的环境,并指定 Python 版本为 3.9

激活 conda 环境

conda activate my-conda-env

在环境中安装库

conda install numpy pandas

退出 conda 环境

conda deactivate

删除 conda 环境

conda env remove -n my-conda-env
“`

Anaconda/Miniconda 的优势在于它不仅管理 Python 版本,还能管理很多非 Python 的依赖库,尤其是在科学计算领域。而且它的环境管理比原生的 virtualenv 更强大一些。缺点嘛,就是安装包比较大,尤其 Anaconda,下载和安装需要一些时间和空间。

最后,再来说说 自己编译安装 Python。这个方法相对来说最“硬核”,也最灵活,你可以完全控制编译选项,安装 到任何你想安装的位置。但缺点也很明显,步骤比较繁琐,需要手动处理各种依赖库,出错的概率也比较高,不推荐新手尝试。除非你有非常特殊的需求,否则用 pyenv 或者 Anaconda/Miniconda 会省心很多。

编译安装的大致流程是:
1. 去 Python 官网下载你想安装的 Python 版本的源码包(.tgz 文件)。
2. 解压源码包。
3. 进入解压后的目录。
4. 配置编译选项(./configure),这里可以指定安装路径、启用或禁用某些模块等。
5. 编译 (make)。
6. 安装 (sudo make install)。注意,直接 make install 可能会覆盖系统自带的 Python,强烈建议使用 ./configure --prefix=/opt/python3.10 这样的方式指定安装路径,然后不要添加到系统 PATH,而是通过软连接或修改用户 PATH 的方式使用,以免影响系统。

总的来说,在 Linux 上安装 Python,我的建议是:

  • 对于新手或者只想简单跑点脚本,试试用系统包管理器 安装 最新版本的 Python 3 和 pip。但要记住,别去动系统自带的那个 Python。
  • 对于需要管理多个项目、使用不同 Python 版本或者需要虚拟环境的开发者,强烈推荐使用 pyenv。它能优雅地解决你的版本管理问题,配合 pyenv-virtualenv 食用更佳。
  • 如果你是做数据科学、机器学习的,或者习惯使用 conda 生态,那就选择 Anaconda/Miniconda

无论选择哪种方式,安装 Python 后,别忘了检查一下 Pythonpip 的版本,确保安装成功:

bash
python --version # 或者 python3 --version
pip --version # 或者 pip3 --version

然后你就可以愉快地开始你的 Python 之旅了!记住,Linux 世界广阔,安装 Python 只是第一步,后面还有更多有趣的工具和技术等着你去探索。别怕折腾,每一次踩坑都是一次成长。祝你好运!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。