说实话,刚开始接触 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 后,别忘了检查一下 Python 和 pip 的版本,确保安装成功:
bash
python --version # 或者 python3 --version
pip --version # 或者 pip3 --version
然后你就可以愉快地开始你的 Python 之旅了!记住,Linux 世界广阔,安装 Python 只是第一步,后面还有更多有趣的工具和技术等着你去探索。别怕折腾,每一次踩坑都是一次成长。祝你好运!
评论(0)