- 系统级 Python 路径:让系统能找到你安装的 Python 包(
.so文件)或可执行脚本,这通常通过修改PYTHONPATH和PATH变量实现。 - 特定项目的虚拟环境:为单个项目创建一个隔离的 Python 环境,避免包冲突,这是现代 Python 开发的最佳实践。
我将详细解释这两种情况,并提供具体步骤。

设置系统级 Python 路径
当你安装了一个 Python 包(例如通过 pip install --user 安装到用户目录),或者自己写了一个 Python 脚本,并希望在任何地方都能运行它时,就需要配置环境变量。
PATH 变量:让系统找到可执行文件
PATH 变量是一个目录列表,当你在终端输入一个命令时,系统会按顺序在这些目录中查找对应的可执行文件。
示例: 你使用 pip install --user some-package 安装了一个工具,它的可执行文件位于 ~/.local/bin 目录下,为了让系统能直接运行 some-package 命令,需要将 ~/.local/bin 添加到 PATH。
步骤:
-
打开终端。
-
编辑
~/.bashrc文件(这是针对 Bash shell 的配置文件,大多数 Ubuntu 版本默认使用 Bash)。nano ~/.bashrc
你也可以使用
vim或gedit等其他编辑器。 -
在文件末尾添加以下行:
# 将 ~/.local/bin 添加到 PATH 的开头 export PATH="$HOME/.local/bin:$PATH"
$HOME是你的用户主目录的简写,等同于 。export命令用于将这个修改后的PATH变量应用到当前 shell 及其所有子进程中。- 重要:将
"$HOME/.local/bin"放在$PATH的前面,这样可以优先使用你用户目录下的工具,而不是系统级的同名工具。
-
保存并关闭文件。
- 在
nano中,按Ctrl + X,然后按Y,最后按Enter。
- 在
-
使配置立即生效: 你可以关闭并重新打开终端,或者运行以下命令让当前的 shell 会话加载新的配置:
source ~/.bashrc
你就可以在任何地方直接运行你安装在 ~/.local/bin 下的工具了。
PYTHONPATH 变量:让 Python 找到模块和包
PYTHONPATH 是一个环境变量,告诉 Python 解释器除了标准库和已安装的第三方包之外,还应该去哪些目录查找模块(.py 文件)。
示例: 你有一个自己写的项目,其目录结构如下:
/my_project
├── my_module/
│ └── utils.py
└── main.py
你想从 main.py 中导入 my_module.utils,但 my_project 目录不在 Python 的默认搜索路径中。
步骤:
-
打开终端。
-
编辑
~/.bashrc文件:nano ~/.bashrc
-
在文件末尾添加以下行:
# 将你的项目目录添加到 PYTHONPATH export PYTHONPATH="/path/to/my_project:$PYTHONPATH"
- 将
/path/to/my_project替换成你自己的项目绝对路径。 - 同样,将其放在
$PYTHONPATH的前面,可以优先使用你自定义的模块。
- 将
-
保存并关闭文件,然后运行
source ~/.bashrc使配置生效。
你可以在任何 Python 脚本中直接 import my_module.utils,Python 就能找到了。
为项目创建虚拟环境(强烈推荐)
为每个项目创建一个独立的虚拟环境是 Python 开发的标准做法,它能做到:
- 隔离依赖:每个项目都有自己的包集合,互不干扰。
- 避免冲突:解决不同项目需要不同版本包的矛盾。
- 保持系统纯净:避免在系统 Python 中安装大量包。
我们将使用 venv 模块,它是 Python 3.3+ 自带的,无需额外安装。
步骤:
-
进入你的项目目录:
cd /path/to/your_project
-
创建虚拟环境:
# 创建一个名为 'venv' 的虚拟环境目录 python3 -m venv venv
python3 -m venv是推荐的方式,它会使用你指定的 Python 3 版本。venv是你为虚拟环境创建的目录名,你可以自定义,myenv。
-
激活虚拟环境:
source venv/bin/activate
激活后,你会发现终端提示符前面多了
(venv)字样,这表示你当前正在虚拟环境中。 -
在虚拟环境中工作:
- 安装包:你用
pip安装的任何包都会被安装到这个虚拟环境中,而不是系统环境中。pip install requests numpy
- 运行脚本:直接运行你的 Python 文件即可,它会自动使用虚拟环境中的解释器和包。
python main.py
- 安装包:你用
-
退出虚拟环境: 完成工作后,只需运行一个命令即可退出:
deactivate
终端提示符会恢复原状。
虚拟环境的好处是临时的、项目本地的,你不需要去修改任何系统级的配置文件(如 ~/.bashrc),这既安全又方便。
总结与最佳实践
| 任务 | 推荐方法 | 原因 |
|---|---|---|
| 日常 Python 开发 | 使用虚拟环境 (venv) |
隔离依赖,避免冲突,是行业标准做法。 |
| 安装全局工具 | pip install --user + 修改 ~/.bashrc 中的 PATH |
将工具安装到用户目录,避免污染系统 Python,并通过 PATH 使其可用。 |
| 引用本地模块 | 修改 ~/.bashrc 中的 PYTHONPATH |
适用于需要在不同项目中共享同一套自定义模块的特定情况,但不如虚拟环境隔离性好。 |
| 系统管理 | 谨慎修改系统级环境变量 (如 /etc/environment) |
除非你有明确的系统管理需求,否则不建议普通用户修改这些文件,可能会影响系统稳定性。 |
对于绝大多数用户,尤其是开发者,最核心的技能就是掌握虚拟环境的使用。
- 想运行某个项目?
cd到项目目录,source venv/bin/activate。 - 想装一个全局命令行工具?
pip install --user tool-name,然后把~/.local/bin加到~/.bashrc的PATH里。
