说起在 Linux 系统里安个 Python 这事儿,哎呀,真是一言难尽。尤其是对刚从 Windows 过来,或者不怎么捣鼓系统的朋友,可能觉得挺玄乎的。系统里不是自带了一个吗?为啥还要自己装?这大概是第一个会冒出来的疑问吧。很简单,系统自带的那个啊,十有八九是老掉牙的版本,就跟老物件儿似的,虽然还能用,但很多新东西跑不了,甚至会跟系统里的一些核心组件绑定得死死的,你动它一下,嘿,说不定哪个依赖就断了,然后系统就出幺蛾子。咱要玩点新的库、新的框架,比如最新的 Django 啊、FastAPI 啊,或者就想尝尝新版 Python 的语法糖,那必须得自己请个新版回家。
那 linux怎么安装python 呢?其实路子挺多,但我跟你说,不是每条路都适合你,也不是每条路都那么顺畅。咱得根据自己的实际情况,选一条相对靠谱的。我这些年跟 Linux 打交道,装 Python 少说也折腾过好几回,从最早的 Ubuntu 到 CentOS 再到现在的 Arch(别学我,Arch 水深),各种坑基本都踩遍了。今天就掰开了揉碎了跟你聊聊这几条道儿,以及我个人觉得哪个更适合普通用户。
方法一:最省心——用系统自带的包管理器
这是最常见、最无脑(褒义词!)的方法了,也是我个人最推荐新手尝试的。大部分 Linux 发行版都有自己的“应用商店”,只不过是命令行版的,比如 Ubuntu/Debian 系的 apt
,CentOS/RHEL 系的 yum
或者新的 dnf
。用这玩意儿装东西,系统会自动帮你处理依赖关系,省去你一堆麻烦。
想用 apt
装 Python 3?打开终端,敲这行:
bash
sudo apt update
sudo apt install python3
先 update
一下是好习惯,刷新仓库信息,确保你拿到的安装包是最新的。然后 sudo apt install python3
就完事儿。sudo
是用来获取管理员权限的,因为安装软件这事儿得系统说了算。它会问你密码,输入就行,屏幕上可能不会显示你输入的字符,正常。
如果是用 yum
或 dnf
的系统(比如 CentOS 7 用 yum
,CentOS 8/Fedora 用 dnf
),命令差不多:
bash
sudo yum update # 或者 dnf update
sudo yum install python3 # 或者 dnf install python3
看到没?就这么简单几行命令,回车,等它跑完,一个新的 Python 3 版本就装好了。通常会装在 /usr/bin/python3
或者 /usr/local/bin/python3
这种地方。
但是,这种方法有个局限性:你能装的版本取决于你系统仓库里有什么。可能不是最新的 Python 版本。比如你想装 Python 3.10,但你的系统仓库里只有 3.8,那就没办法了。而且,这种方式安装的 Python 也是系统级别的,虽然比动系统自带的那个安全点,但如果你有很多项目依赖不同版本的 Python 或者不同的库版本,还是有点不灵活。这就像住大宿舍,挺方便,但没啥个人空间。
方法二:有点折腾但版本自由——源码编译安装
这条路就稍微有点硬核了,但换来的是自由度。你想装哪个版本的 Python?Python 官网上下个源码包,自己编译安装!这就像自己盖房子,想啥样儿就啥样儿,就是过程复杂点,灰尘多点。
为啥要自己编译?通常是为了装某个特定的新版本,或者你想在 Python 里启用一些默认不开启的特性。
步骤大概是这样:
- 下载源码: 去 Python 官网 (python.org) 找到你想要的版本,比如 Python 3.9.10 的源码包 (
.tgz
文件),然后用wget
命令在 Linux 里下载下来。
bash
wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz - 解压: 下载回来的是个压缩包,得解开。
bash
tar -xf Python-3.9.10.tgz
这会得到一个叫Python-3.9.10
的目录。 - 进入目录:
bash
cd Python-3.9.10 -
配置: 这一步是检查你的系统环境,看看编译 Python 需要的各种库、工具链齐不齐。你可以指定安装目录(很重要,别装到
/usr/bin
或/usr/local/bin
这种系统目录里去,容易覆盖系统文件,建议装到/opt
或者你自己的家目录下的一个特定位置,比如/home/youruser/.local/python3.9
)。常用的配置命令是:
bash
./configure --enable-optimizations --prefix=/opt/python-3.9.10
--enable-optimizations
会让编译出来的 Python 跑得更快,但编译时间会长一些。--prefix=/opt/python-3.9.10
就是指定安装位置了。这个/opt/python-3.9.10
只是个例子,你可以换成别的。
踩坑点: 这一步最容易出问题!可能提示你缺这少那的库,比如zlib-devel
,bzip2-devel
,openssl-devel
,sqlite-devel
,readline-devel
,libffi-devel
等等。别慌,根据错误信息用包管理器(apt
或yum/dnf
)把这些依赖装上就行了。比如在 Ubuntu 上:
bash
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
装完再回来重新执行./configure
。这个过程可能要反复几次,直到./configure
顺利跑完,不报致命错误。 -
编译: 这是个体力活,你的电脑得吭哧吭哧干一阵子。
bash
make -j$(nproc)
make -j$(nproc)
这个命令会利用你 CPU 的所有核心来并行编译,能快不少。盯着屏幕看编译信息刷屏,有点像看黑客电影,哈哈。如果中间报错停了,得仔细看错误信息,一般还是缺库或者配置不对。 -
安装: 编译好了,最后一步就是装到你指定的位置去。
bash
sudo make altinstall
注意,这里我用了make altinstall
而不是make install
。敲黑板,划重点!make install
会在系统路径里创建python
和pip
的软链接,可能会覆盖掉系统自带的或者之前用包管理器装的 Python 版本,导致系统混乱。而altinstall
就乖巧多了,它只会创建带版本号的命令,比如python3.9
和pip3.9
,不会影响系统默认的/usr/bin/python
或/usr/bin/python3
。所以,强烈推荐使用make altinstall
。sudo
当然还是需要的,因为你是往/opt
这种需要管理员权限的地方安装。 -
验证: 装好了,试试看!
bash
/opt/python-3.9.10/bin/python3.9 --version
如果能正确输出Python 3.9.10
,恭喜你,成功了!
编译安装虽然麻烦,需要处理依赖,但它给了你最新、最纯净的 Python 环境,而且装在你指定的地方,不污染系统。这就像自己在家搭了个工作室,工具啥的都按自己习惯放。
方法三:管理多个 Python 版本的利器——使用 pyenv/conda 等工具
如果你是个重度 Python 用户,经常需要在不同项目间切换,有的要 Python 3.7,有的要 3.9,有的要 3.10,那上面两种方法都太笨重了。包管理器只能装系统仓库里那几个版本,编译安装每次一个版本,装多了管理起来头大。这时候,你就需要一个专业的 Python 版本管理器了,比如 pyenv
或者 conda
。
我个人更喜欢 pyenv
,它轻量,专注于 Python 版本管理。conda
更重量级,除了 Python 还能管理其他语言和包,更适合搞数据科学的朋友。咱们以 pyenv
为例简单说说。
装 pyenv
本身也挺简单,可以用它的安装脚本:
bash
curl https://pyenv.run | bash
这脚本会自动帮你下载 pyenv
并放到合适的位置。装完后,按照脚本的提示,你需要修改一下你的 shell 配置文件(比如 ~/.bashrc
或 ~/.zshrc
),把 pyenv
初始化和添加到环境变量的命令加进去。然后 source ~/.bashrc
(或者你的文件) 让配置生效。
配置好 pyenv
后,安装 Python 就变得优雅多了:
-
查看可安装版本:
bash
pyenv install --list
哇塞,能看到一大串可用的 Python 版本,从古老的 2.x 到最新的 3.x,甚至还有各种发行版(比如 Anaconda, Miniconda, PyPy 等等)。 -
安装指定版本: 比如你想装 Python 3.10.0。
bash
pyenv install 3.10.0
pyenv
会自动去下载源码,并在你的用户目录下编译安装(通常在~/.pyenv/versions/
里),整个过程跟手动编译差不多,但它帮你处理好了下载、解压、配置、编译、安装这些步骤,还解决了altinstall
的问题。编译过程可能还是需要一些系统级别的编译工具和库,如果pyenv install
报错说缺什么,你还是得用包管理器去装那些依赖,跟方法二里遇到的类似。 -
切换版本: 这是
pyenv
的核心功能。- 全局切换(谨慎使用):
pyenv global 3.10.0
– 这样你当前登录的用户在任何地方默认用的都是 3.10.0。 - 局部切换(项目推荐):进入你的项目目录,然后
pyenv local 3.9.7
– 这样只有在这个目录和它的子目录里,默认的 Python 版本才是 3.9.7。这是最常用的方式,不同项目用不同版本,互不干扰。 - 当前会话切换:
pyenv shell 3.8.12
– 只影响当前终端窗口。
- 全局切换(谨慎使用):
用 pyenv
管理 Python 版本,就像给每个项目发了一把钥匙,想用哪个版本的 Python 就开哪个门。这对于经常写代码、维护多个项目的人来说,简直是救命稻草。
再强调一下:虚拟环境(Virtual Environment)!
无论你用哪种方式安装了 Python,强烈建议你为每个项目都创建一个独立的虚拟环境。这跟上面说的 Python 版本管理不是一回事。版本管理(比如 pyenv
)是解决你有多个 Python 解释器版本(比如 Python 3.8 和 3.10)的问题;而虚拟环境是在某个特定的 Python 版本下,为你的项目创建一个隔离的库安装空间。
你想啊,你第一个项目可能需要 requests
库的 2.25 版本,第二个项目需要 2.28 版本。如果所有库都装到同一个地方(系统级的 site-packages),那就会冲突。虚拟环境就是解决这个问题的。
Python 3.3+ 自带 venv
模块,用起来很方便:
- 进入你的项目目录。
- 创建虚拟环境:
bash
python3 -m venv .venv
# 或者如果你用 pyenv 切换到了特定版本,直接用那个版本的命令
# python -m venv .venv
这会在当前目录下创建一个叫.venv
的文件夹(名字随意,.venv
是约定俗成的)。 - 激活虚拟环境:
bash
source .venv/bin/activate
看到终端前出现了(.venv)
字样了吗?说明你已经进入这个虚拟环境了。 -
安装项目依赖:
bash
pip install -r requirements.txt
# 或者 pip install requests django flask 等等
这时候用pip
安装的库,只会装到这个.venv
目录里,不会影响系统或其他虚拟环境。 -
退出虚拟环境:
bash
deactivate
用好虚拟环境,你的 Python 开发环境会变得超级干净、整洁、可控。这就像你在每个项目的工作台上只放这个项目需要的工具,而不是把所有项目的工具混在一起。
总结一下我个人的碎碎念:
对于刚接触 Linux,或者只是想跑跑一些简单的 Python 脚本的朋友,用系统包管理器安装是最省事的,试试 sudo apt install python3
或者 sudo yum install python3
吧,通常够用了。
如果你需要最新的 Python 版本,或者想深入了解编译过程,不怕麻烦,那源码编译是个不错的选择,但切记 make altinstall
和指定安装目录,别把系统搞崩了。
如果你是个资深开发者,同时维护好几个项目,每个项目依赖的版本不一样,那花点时间学习和使用 pyenv
或 conda
来管理你的 Python 版本,再结合虚拟环境,绝对是事半功倍,一劳永逸。
最后再多一句嘴,不管你用哪种方式,永远不要轻易去替换或修改系统自带的那个 Python 版本!那个版本可能是系统内部脚本依赖的,你动了它,系统环境可能就坏了。咱们新安装的 Python,最好是作为额外的一个版本来使用,通过软链接、环境变量或者 pyenv
这种工具来切换和管理。
好了,关于 linux怎么安装python 这事儿,我的经验和心得大概就这些了。希望对你有点帮助,少走点弯路。在 Linux 的世界里折腾,就是这样,有点挑战,有点麻烦,但搞定了,成就感满满的。祝你顺利把 Python 请到你的 Linux 系统里,玩得开心!
评论(0)