杰瑞科技汇

linux python pip安装

目录

  1. 核心概念:pip 是什么?
  2. 前提条件:安装 Python
  3. 安装 pip
    • 使用系统包管理器(推荐)
    • 使用 ensurepip(适用于 Python 3.4+)
    • 手动安装(备用方案)
  4. pip 的基本使用
    • 升级 pip 自身(重要!)
    • 安装包
    • 卸载包
    • 列出已安装的包
    • 显示包的详细信息
    • 检查包是否有可用更新
    • 导出/导入依赖列表
  5. 最佳实践与高级技巧
    • 使用虚拟环境(venv
    • 权限问题:为什么应该避免 sudo pip
    • 国内用户加速:使用国内镜像源
    • pippip3 的区别
  6. 常见问题与解决方案

核心概念:pip 是什么?

pip 是 Python 的包安装程序(Package Installer for Python),它的主要作用是:

  • 安装:从 Python 包索引(PyPI, Python Package Index)或其他来源下载并安装 Python 包及其依赖项。
  • 卸载:移除已安装的包。
  • 管理:列出、查看、升级已安装的包。

可以把 pip 理解为 Python 世界的 apt (Debian/Ubuntu) 或 yum (CentOS/RHEL)。


前提条件:安装 Python

pip 依赖于 Python,你的系统上必须已经安装了 Python。

如何检查 Python 是否已安装?

打开终端,运行以下命令:

# 检查 Python 3 是否安装
python3 --version
# 或者检查 Python 2 是否安装 (不推荐,Python 2 已停止维护)
python --version

如果看到类似 Python 3.8.10Python 3.10.6 的输出,说明 Python 已安装,如果提示 command not found,则需要先安装 Python。

如何安装 Python?

根据你的 Linux 发行版使用相应的包管理器:

  • 基于 Debian/Ubuntu 的系统 (如 Ubuntu, Mint):

    # 更新软件包列表
    sudo apt update
    # 安装 Python 3 和 pip (通常一起安装)
    sudo apt install python3 python3-pip
  • 基于 Red Hat/CentOS/Fedora 的系统 (如 CentOS, Fedora):

    # 更新软件包列表
    sudo yum update
    # 安装 Python 3 和 pip
    sudo yum install python3 python3-pip
    # 对于较新的系统 (如 Fedora 22+, CentOS 8+), 使用 dnf
    # sudo dnf install python3 python3-pip

安装 pip

如果你的 Python 安装时没有自带 pip,或者你手动编译了 Python,可以按照以下方法安装。

使用系统包管理器(推荐)

这是最简单、最稳定的方法,因为它会自动处理依赖关系。

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install python3-pip

    在较新的 Ubuntu 版本上,包名可能就是 pip

    sudo apt install pip
  • CentOS/RHEL/Fedora:

    sudo yum install python3-pip
    # 或者使用 dnf
    # sudo dnf install python3-pip

使用 ensurepip(适用于 Python 3.4+)

Python 3.4 及更高版本自带了 ensurepip 模块,可以用来安装 pip

# 确保以 root 权限运行,因为 pip 默认会安装到系统目录
sudo python3 -m ensurepip --upgrade

手动安装(备用方案)

如果以上方法都不可用,可以从 get-pip.py 脚本安装,这是 pip 官方推荐的安装方式。

  1. 下载 get-pip.py 脚本:

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  2. 运行脚本安装 pip

    # 同样,推荐使用 sudo 以避免权限问题
    sudo python3 get-pip.py

安装完成后,可以运行 pip3 --version 来验证。


pip 的基本使用

pip 的命令非常直观,以下是最常用的命令。

升级 pip 自身(重要!)

在新安装 pip 后,强烈建议先将其升级到最新版本,以获得最新的功能和错误修复。

# 使用 pip 升级 pip
pip3 install --upgrade pip

安装包

这是 pip 最核心的功能。

# 安装最新的一个包
pip3 install requests
# 安装特定版本的包
pip3 install numpy==1.21.0
# 安装大于或等于某个版本的包
pip3 install "pandas>=1.3.0"
# 从本地的 .whl 或 .tar.gz 文件安装
pip3 install /path/to/your/package.whl

卸载包

pip3 uninstall <package_name>
# 
pip3 uninstall requests

系统会提示你确认是否要卸载,输入 y 并回车即可。

列出已安装的包

# 列出所有已安装的包及其版本
pip3 list

显示包的详细信息

如果你想查看某个包的详细信息,比如依赖关系、版本、位置等。

pip3 show <package_name>
# 
pip3 show numpy

检查包是否有可用更新

pip3 list --outdated

这个命令会列出所有有新版本的已安装包。

导出/导入依赖列表

这是在项目中管理依赖的关键。

  1. 导出当前环境的依赖列表到 requirements.txt 文件:

    pip3 freeze > requirements.txt

    requirements.txt 文件内容示例:

    numpy==1.21.0
    pandas==1.3.0
    requests==2.26.0
  2. 根据 requirements.txt 文件安装所有依赖:

    pip3 install -r requirements.txt

    这在项目部署、团队协作和持续集成中非常有用。


最佳实践与高级技巧

使用虚拟环境(venv

这是最重要的一条最佳实践!

为了避免不同项目之间的 Python 包版本冲突,你应该为每个项目创建一个独立的、隔离的 Python 环境,称为“虚拟环境”。

  1. 创建虚拟环境:

    # my-project-env 是你给虚拟环境起的名字
    python3 -m venv my-project-env
  2. 激活虚拟环境:

    # 在 Bash 或 Zsh 中
    source my-project-env/bin/activate
    # 激活后,你的终端提示符前会出现 (my-project-env)
    (my-project-env) user@hostname:~$
  3. 在虚拟环境中使用 pip 一旦激活,你使用的 pippython 命令都将是虚拟环境中的版本,与系统全局环境隔离。

    # 这个包只会安装在 my-project-env 环境中
    pip install django
    # 列表也只会显示这个环境中的包
    pip list
  4. 退出虚拟环境:

    deactivate

权限问题:为什么应该避免 sudo pip

直接使用 sudo pip install 会让包安装到系统的 Python 目录(通常是 /usr/local/lib/python3.x/),这可能导致:

  • 权限错误:普通用户无法修改系统目录。
  • 版本冲突:破坏系统工具依赖的 Python 包。
  • 难以管理:无法轻松地为单个项目卸载或升级包。

解决方案

  • 最佳方案:始终使用 虚拟环境,在虚拟环境中,你不需要 sudo
  • 次优方案:如果确实需要安装全局包(一个系统级的命令行工具),请使用 --user 标志,将包安装到用户主目录下。
    pip3 install --user <package_name>

    这样包会安装在 ~/.local/bin 等目录,不需要管理员权限。

国内用户加速:使用国内镜像源

PyPI 服务器在国外,国内访问速度较慢,可以配置 pip 使用国内镜像源。

临时使用(单次安装):

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

设为默认(永久配置):

创建或编辑配置文件 ~/.pip/pip.conf (Windows 下是 %APPDATA%\pip\pip.ini),并添加以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
# 另一个可选的镜像源
# index-url = https://mirrors.aliyun.com/pypi/simple/

pippip3 的区别

  • pip:通常指向 Python 2 的包管理器,如果你的系统同时安装了 Python 2 和 Python 3,pip 可能会安装到错误的 Python 环境中。
  • pip3:明确指向 Python 3 的包管理器。

建议:在同时有 Python 2 和 Python 3 的系统上,始终使用 pip3 以确保操作的是正确的 Python 环境,在现代 Linux 发行版中,pip 命令有时已经直接链接到 pip3,但为了清晰和兼容性,推荐使用 pip3


常见问题与解决方案

问题 1:pip 命令未找到 (pip: command not found)

原因pip 没有安装,或者安装后没有添加到系统的 PATH 环境变量中。 解决

  1. 确认已安装 python3-pip
  2. 如果已安装但仍找不到,尝试重新链接或手动添加路径:
    # 查找 pip3 的位置
    which pip3
    # 通常输出 /usr/bin/pip3 或 /usr/local/bin/pip3

    /usr/local/bin 不在 PATH 中,你可能需要添加它。

问题 2:ModuleNotFoundError: No module named 'pip'

原因:Python 找不到 pip 模块,这通常意味着 pip 没有为当前的 Python 版本安装,或者 Python 的 site-packages 目录有问题。 解决

  1. 尝试使用 python3 -m pip 来运行,这可以绕过 PATH 问题:
    python3 -m pip install --upgrade pip
  2. 如果这不起作用,重新使用 ensurepipget-pip.py 安装。

问题 3:权限被拒绝 (Permission denied)

原因:尝试在没有 sudo 的情况下写入系统目录,或者使用了 sudo pip解决

  1. 首选:创建并使用虚拟环境。
  2. 次选:使用 --user 标志进行用户级安装。
  3. 不推荐:如果必须全局安装,使用 sudo pip3 install ...,但要清楚潜在的风险。

希望这份详细的指南能帮助你在 Linux 上顺利地使用 pip

分享:
扫描分享到社交APP
上一篇
下一篇