杰瑞科技汇

ubuntu设置python环境变量

  1. 系统级 Python 路径:让系统能找到你安装的 Python 包(.so 文件)或可执行脚本,这通常通过修改 PYTHONPATHPATH 变量实现。
  2. 特定项目的虚拟环境:为单个项目创建一个隔离的 Python 环境,避免包冲突,这是现代 Python 开发的最佳实践

我将详细解释这两种情况,并提供具体步骤。

ubuntu设置python环境变量-图1
(图片来源网络,侵删)

设置系统级 Python 路径

当你安装了一个 Python 包(例如通过 pip install --user 安装到用户目录),或者自己写了一个 Python 脚本,并希望在任何地方都能运行它时,就需要配置环境变量。

PATH 变量:让系统找到可执行文件

PATH 变量是一个目录列表,当你在终端输入一个命令时,系统会按顺序在这些目录中查找对应的可执行文件。

示例: 你使用 pip install --user some-package 安装了一个工具,它的可执行文件位于 ~/.local/bin 目录下,为了让系统能直接运行 some-package 命令,需要将 ~/.local/bin 添加到 PATH

步骤:

  1. 打开终端

  2. 编辑 ~/.bashrc 文件(这是针对 Bash shell 的配置文件,大多数 Ubuntu 版本默认使用 Bash)。

    nano ~/.bashrc

    你也可以使用 vimgedit 等其他编辑器。

  3. 在文件末尾添加以下行

    # 将 ~/.local/bin 添加到 PATH 的开头
    export PATH="$HOME/.local/bin:$PATH"
    • $HOME 是你的用户主目录的简写,等同于 。
    • export 命令用于将这个修改后的 PATH 变量应用到当前 shell 及其所有子进程中。
    • 重要:将 "$HOME/.local/bin" 放在 $PATH前面,这样可以优先使用你用户目录下的工具,而不是系统级的同名工具。
  4. 保存并关闭文件

    • nano 中,按 Ctrl + X,然后按 Y,最后按 Enter
  5. 使配置立即生效: 你可以关闭并重新打开终端,或者运行以下命令让当前的 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 的默认搜索路径中。

步骤:

  1. 打开终端

  2. 编辑 ~/.bashrc 文件

    nano ~/.bashrc
  3. 在文件末尾添加以下行

    # 将你的项目目录添加到 PYTHONPATH
    export PYTHONPATH="/path/to/my_project:$PYTHONPATH"
    • /path/to/my_project 替换成你自己的项目绝对路径。
    • 同样,将其放在 $PYTHONPATH 的前面,可以优先使用你自定义的模块。
  4. 保存并关闭文件,然后运行 source ~/.bashrc 使配置生效。

你可以在任何 Python 脚本中直接 import my_module.utils,Python 就能找到了。


为项目创建虚拟环境(强烈推荐)

为每个项目创建一个独立的虚拟环境是 Python 开发的标准做法,它能做到:

  • 隔离依赖:每个项目都有自己的包集合,互不干扰。
  • 避免冲突:解决不同项目需要不同版本包的矛盾。
  • 保持系统纯净:避免在系统 Python 中安装大量包。

我们将使用 venv 模块,它是 Python 3.3+ 自带的,无需额外安装。

步骤:

  1. 进入你的项目目录

    cd /path/to/your_project
  2. 创建虚拟环境

    # 创建一个名为 'venv' 的虚拟环境目录
    python3 -m venv venv
    • python3 -m venv 是推荐的方式,它会使用你指定的 Python 3 版本。
    • venv 是你为虚拟环境创建的目录名,你可以自定义,myenv
  3. 激活虚拟环境

    source venv/bin/activate

    激活后,你会发现终端提示符前面多了 (venv) 字样,这表示你当前正在虚拟环境中。

  4. 在虚拟环境中工作

    • 安装包:你用 pip 安装的任何包都会被安装到这个虚拟环境中,而不是系统环境中。
      pip install requests numpy
    • 运行脚本:直接运行你的 Python 文件即可,它会自动使用虚拟环境中的解释器和包。
      python main.py
  5. 退出虚拟环境: 完成工作后,只需运行一个命令即可退出:

    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 加到 ~/.bashrcPATH 里。
分享:
扫描分享到社交APP
上一篇
下一篇