01 Python 安装这件事,其实没你想的那么简单
01 Python 安装这件事,其实没你想的那么简单
这是「Python 包管理全攻略」系列的第一篇。我们从最基础的开始——把 Python 装好。
为什么要单独聊安装?
很多人觉得装 Python 不就是去官网下载安装包,一路 Next 吗?
说实话,我当年也是这么想的。直到后来踩了一堆坑:系统自带的 Python 版本太老、多版本共存搞不定、环境变量配不明白、macOS 升级之后 Python 又炸了……
装 Python 这件事,选择比努力重要。
几种主流的安装方式
1. 官网安装包(最直觉的方式)
去 python.org 下载对应系统的安装包,双击运行。
Windows 用户注意: 安装界面底部有个勾选项 Add Python to PATH,一定要勾上。不勾的话,你在命令行输入 python 会提示找不到命令。这是新手遇到的第一个坑,每年都有人中招。
macOS 用户注意: 从 macOS 12.3 开始,系统不再自带 Python 2。如果你用老项目依赖 Python 2,需要单独安装。另外,macOS 自带的 python3 命令指向的是 Xcode Command Line Tools 里的版本,版本可能不是你想要的。
官网安装包的优点是什么都不用配,开箱即用。缺点是——如果你想同时用 Python 3.10 和 3.12,就有点头疼了。
2. 通过包管理器安装(推荐日常使用)
macOS 用 Homebrew:
brew install python
简单粗暴,而且后续升级也方便,brew upgrade python 就行。Homebrew 装的 Python 不会和系统自带的打架,这是它最大的优势。
Ubuntu/Debian 用 apt:
sudo apt update
sudo apt install python3 python3-pip python3-venv
注意 python3-venv 这个包一定要装上,后面讲虚拟环境的时候用得到。很多教程不提这个,导致后面 python -m venv 报错,一脸懵。
CentOS/RHEL 用 yum/dnf:
sudo dnf install python3 python3-pip
3. pyenv:多版本管理利器(推荐开发者使用)
如果你做 Python 开发,经常需要在不同项目间切换,而不同项目可能要求不同的 Python 版本——这时候 pyenv 就是你的救星。
安装 pyenv(macOS/Linux):
# 安装 pyenv
curl https://pyenv.run | bash
# 在 ~/.bashrc 或 ~/.zshrc 里加上这几行
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
基本用法:
# 看看能装哪些版本
pyenv install --list
# 装个 Python 3.12.3
pyenv install 3.12.3
# 设为全局默认
pyenv global 3.12.3
# 在某个项目目录下用特定版本
cd my-project
pyenv local 3.10.14
pyenv local 会在当前目录生成一个 .python-version 文件,以后每次进入这个目录,pyenv 自动切换到对应版本。这个功能用过就回不去了。
Windows 用户 可以用 pyenv-win,功能类似,安装方式不同,看官方文档操作就行。
4. 从源码编译(一般用不到)
除非你在做嵌入式、信创环境适配,或者需要一些特殊的编译选项,否则不推荐从源码编译安装。过程不复杂,但编译依赖处理起来比较烦:
wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz
tar -xzf Python-3.12.3.tgz
cd Python-3.12.3
./configure --enable-optimizations
make -j$(nproc)
sudo make altinstall # 用 altinstall 避免覆盖系统默认的 python3
注意最后用 altinstall 而不是 install,不然可能把系统的 Python 给覆盖了,到时候系统工具用不了别怪我没提醒你。
怎么验证安装成功了?
不管用哪种方式安装,装完之后跑一下这几个命令:
python3 --version # 看版本号
python3 -c "import sys; print(sys.executable)" # 看 Python 装在哪
pip3 --version # 看 pip 有没有
如果你看到版本号正确输出,pip 也有,那就没问题了。
关于 Python 2 的一嘴
2020 年 1 月 1 日,Python 2 已经正式 EOL(End of Life)了。新项目不要用 Python 2,老项目能迁就迁。如果你实在要维护老项目,用 pyenv 装个 Python 2.7 就行,别污染系统环境。
我的建议
- 只是学 Python、写写脚本: 官网安装包或者 Homebrew/apt 装一下就行
- 正经做 Python 开发: 上 pyenv,多版本管理太方便了
- 搞数据科学/机器学习: 直接上 Conda(后面的文章会详细讲)
- 生产服务器部署: 用系统包管理器安装,稳定可靠
面试题
1. 为什么在 macOS 上推荐用 Homebrew 安装 Python,而不是直接用系统自带的?
系统自带的 Python 版本通常较旧,且 macOS 系统更新可能修改或删除它。用 Homebrew 安装的 Python 独立于系统,升级和管理都更方便,也不会和系统工具产生冲突。
2. pyenv 的 global 和 local 命令有什么区别?
pyenv global设置全局默认的 Python 版本,对所有目录生效。pyenv local只在当前目录生效,它会在目录下创建一个.python-version文件。当两者同时存在时,local优先级更高。
3. 安装 Python 时,make install 和 make altinstall 有什么区别?为什么推荐用后者?
make install会创建python3的软链接,可能覆盖系统已有的 Python 3,导致依赖系统 Python 的工具(如 yum)无法工作。make altinstall不会创建这个软链接,只会安装python3.x这样的具体版本命令,更安全。
4. 在 Windows 安装 Python 时,忘记勾选 “Add Python to PATH” 会导致什么问题?怎么修复?
会导致在命令行中输入
python时提示"不是内部或外部命令"。修复方式有两种:一是重新运行安装程序,勾选该选项;二是手动将 Python 安装路径和 Scripts 目录添加到系统环境变量 PATH 中。
更多推荐


所有评论(0)