什么是环境变量?
简单理解一下环境变量,它们是操作系统用来存储有关运行环境信息的命名对象,对于 Python 最重要的环境变量是 PATH。

PATH变量:它是一个目录列表,当你在终端输入一个命令(如python或pip)时,系统会按顺序查找PATH列表中的每一个目录,看看是否存在可执行文件与你的命令名匹配,如果找到了,就执行它;如果找遍了所有目录都没有,就会提示 "command not found"。
配置 Python 环境变量,通常就是为了让系统能够在任何位置(不切换目录)直接找到并执行 Python、pip 等工具。
系统自带的 Python(简单配置)
大多数 Linux 发行版(如 Ubuntu, Debian, CentOS)都会自带一个 Python 版本(通常是 Python 2 或 Python 3),这个 Python 的可执行文件通常位于 /usr/bin/ 目录下,而这个目录默认就在 PATH 变量中。
对于系统自带的 Python,你通常不需要手动配置 PATH。
如何验证?

- 打开终端。
- 输入以下命令查看 Python 是否可用:
python3 --version
或者(如果你的系统默认是 Python 2):
python --version
- 如果能显示出版本号,说明系统已经可以找到
python3或python命令,PATH配置是正确的。
安装了多个 Python 版本(常见情况)
当你通过 apt, yum 或 dnf 安装了 Python 3,同时系统还保留着 Python 2 时,你会遇到这种情况。python 命令指向 Python 2,而 python3 指向 Python 3。
这本身是一种隔离策略,通常不需要额外配置,但如果你想将 python 默认指向 Python 3,可以创建一个软链接(Symbolic Link)。
示例:将 python 命令默认指向 Python 3
假设你的 python3 安装在 /usr/bin/python3。
-
检查当前指向
ls -l /usr/bin/python # 可能会显示类似 -> /usr/bin/python2.7 的内容
-
创建软链接 需要使用
sudo因为/usr/bin是系统目录。# 先删除旧的软链接(如果存在) sudo rm /usr/bin/python # 创建新的软链接,指向 python3 sudo ln -s /usr/bin/python3 /usr/bin/python
-
验证
python --version # 现在应该显示 Python 3.x.x 的版本了
注意:这种方法可能会影响依赖 Python 2 的系统工具,在生产环境或不确定的情况下,更推荐使用
python3和pip3这样的明确命令。
通过源码或 pyenv 安装 Python(核心配置)
当你从官网下载源码编译安装 Python,或者使用 pyenv 等版本管理器安装时,Python 的可执行文件(如 python, pip)通常位于用户自己的主目录下,~/my_python/bin/,这个目录默认不在 PATH 中,所以你需要手动添加。
临时修改(仅对当前终端有效)
这种方式适合临时测试,不会影响系统其他部分。
# 假设你的 Python 安装在 /home/user/my_python export PATH="/home/user/my_python/bin:$PATH" # 验证 python --version pip --version
缺点:关闭终端后,配置失效。
永久修改(推荐)
为了让配置永久生效,你需要修改 shell 的配置文件,根据你使用的不同 Shell,文件名也不同。
- Bash Shell (最常见,Ubuntu, CentOS 默认):
~/.bashrc或~/.bash_profile - Zsh Shell (macOS 默认,很多 Linux 用户也喜欢用):
~/.zshrc - Fish Shell:
~/.config/fish/config.fish
步骤(以 Bash 的 ~/.bashrc 为例):
-
打开配置文件 使用你喜欢的文本编辑器,如
nano或vim。nano ~/.bashrc
-
添加配置 在文件末尾添加以下内容。请务必将
/path/to/your/python替换成你自己的 Python 安装路径。# >>> Python Environment Variables >>> # 将你的 Python 安装目录下的 bin 目录添加到 PATH 的最前面 export PATH="/home/user/my_python/bin:$PATH" # <<< Python Environment Variables <<<
为什么放在最前面 (
$PATH前面)? 这是为了让你的 Python 优先于系统自带的 Python 被找到,如果你希望系统 Python 优先,则放在后面。 -
保存并退出
- 在
nano中:按Ctrl + X,然后按Y,最后按Enter。 - 在
vim中:按Esc,然后输入wq,最后按Enter。
- 在
-
让配置立即生效 你可以关闭当前终端并重新打开一个,或者运行以下命令让配置在当前终端中立即生效:
source ~/.bashrc
-
验证
python --version pip --version # 应该能显示你新安装的版本信息了
配置 pip 的镜像源(提升下载速度)
虽然这不是严格意义上的 "PATH" 环境变量,但这是配置 Python 环境时几乎必不可少的一步,可以极大提升 pip 下载包的速度。
-
创建或编辑配置文件
pip的配置文件是~/.pip/pip.conf(如果没有目录和文件,需要手动创建)。 -
添加镜像源内容
mkdir -p ~/.pip nano ~/.pip/pip.conf
在文件中添加以下内容(这里以清华源为例):
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host = pypi.tuna.tsinghua.edu.cn
-
验证 现在使用
pip install安装包时,就会自动从国内镜像源下载了。pip install requests
常见问题与排查
问题:pip: command not found
- 原因:
pip的所在目录没有被添加到PATH中。 - 解决:
- 找到
pip的位置:which python3,然后看它的同目录下有没有pip3。which python3输出/usr/bin/python3,pip3应该在/usr/bin/pip3。 - 按照 场景三 的方法,将
/usr/bin(pip在里面)或pip所在的目录添加到PATH中。 - 如果是新安装的,别忘了创建软链接:
# 假设 pip 在 ~/my_python/bin/pip sudo ln -s /home/user/my_python/bin/pip /usr/local/bin/pip # /usr/local/bin 通常也在 PATH 中,是个好选择
- 找到
问题:zsh: command not found: python / bash: python: command not found
- 原因:
python命令不在PATH中,或者你使用的 Shell 配置文件不正确(在 Zsh 中配置了~/.bashrc但没有配置~/.zshrc)。 - 解决:
- 确认你使用的 Shell:
echo $SHELL。 - 根据 Shell 类型,修改对应的配置文件(
~/.bashrc或~/.zshrc)。 - 确保添加了正确的路径,并执行了
source命令或重启终端。
- 确认你使用的 Shell:
问题:修改了 PATH 但不生效
- 原因:
- 修改错了配置文件(比如改了
~/.profile但用的是zsh)。 - 拼写错误(
PatH写错了)。 - 只在一个终端会话中
export,但没有保存到配置文件。
- 修改错了配置文件(比如改了
- 解决:
- 仔细检查配置文件路径和内容。
- 确保修改后执行了
source ~/.bashrc(或对应的文件)。 - 彻底关闭所有终端,重新打开一个干净的会话再试。
| 场景 | 目标 | 方法 | 关键点 |
|---|---|---|---|
| 系统自带 Python | 确认可用 | python3 --version |
通常无需配置,/usr/bin 在 PATH 中。 |
| 多版本共存 | 默认指向 Python 3 | 创建软链接 sudo ln -s /usr/bin/python3 /usr/bin/python |
需要管理员权限,可能影响系统工具。 |
| 自定义安装 | 让 python 和 pip 全局可用 |
修改 Shell 配置文件 (~/.bashrc, ~/.zshrc) |
添加 export PATH="/your/python/bin:$PATH" 到文件末尾,并 source。 |
提升 pip 速度 |
配置国内镜像源 | 编辑 ~/.pip/pip.conf |
添加 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple |
希望这份详细的指南能帮助你成功配置好你的 Python 环境!
