杰瑞科技汇

linux python 安装 模块

核心摘要:你应该用哪个工具?

场景 推荐工具 命令示例
个人项目、快速安装 pip (Python 包安装器) pip install requests
系统级 Python (如 CentOS 7) pip pip install --user numpy
项目级依赖管理 (强烈推荐) pip + requirements.txt pip install -r requirements.txt
创建虚拟环境 venv (Python 内置) python3 -m venv myenv
系统级/全局依赖 (不推荐) apt (Debian/Ubuntu) sudo apt install python3-numpy

准备工作:确认你的 Python 环境

在安装任何模块之前,最重要的一步是确认你正在使用哪个 Python 解释器,因为 Linux 系统通常自带 Python 2 和 Python 3,而我们现在几乎都使用 Python 3。

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

# 检查 Python 3 是否已安装
python3 --version
# 检查 pip 是否已安装 (pip 是 Python 的包安装器)
pip3 --version

输出示例:

$ python3 --version
Python 3.10.6
$ pip3 --version
pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.10)

pip3 没有安装,你可以通过系统的包管理器来安装,对于 Debian/Ubuntu 系统:

# 更新软件包列表
sudo apt update
# 安装 pip3
sudo apt install python3-pip

对于 CentOS/RHEL/Fedora 系统:

# 首先安装 EPEL 仓库
sudo dnf install epel-release
# 然后安装 pip3
sudo dnf install python3-pip

安装 Python 模块的核心方法:pip

pip 是 Python 官方推荐的包管理工具,绝大多数 Python 模块都可以通过 pip 安装。

基本安装命令

# 安装一个模块
pip3 install <模块名>
# 示例:安装著名的 requests 库
pip3 install requests

安装特定版本

如果你需要安装某个模块的特定版本(为了兼容旧项目):

# 安装 requests 的 2.25.1 版本
pip3 install requests==2.25.1

升级已安装的模块

# 升级 requests 到最新版本
pip3 install --upgrade requests

卸载模块

# 卸载 requests
pip3 uninstall requests

关键概念:虚拟环境

这是 Python 开发中最重要、最推荐的实践。永远不要在系统全局环境中安装你的项目依赖!

为什么需要虚拟环境?

  1. 项目隔离:每个项目可能有不同的依赖版本,虚拟环境可以为每个项目创建一个独立的“沙盒”,避免版本冲突。
  2. 保持系统干净:避免将大量第三方库污染到系统级的 Python 环境中。
  3. 可复现性:可以轻松地导出项目的所有依赖,以便在其他机器上重现完全相同的环境。

如何使用 venv 创建和使用虚拟环境

venv 是 Python 3.3+ 自带的模块,无需额外安装。

步骤 1:创建虚拟环境

在你的项目根目录下,运行:

# 创建一个名为 'venv' 的虚拟环境文件夹
python3 -m venv venv

执行后,你会看到当前目录下多了一个 venv 文件夹,里面包含了独立的 Python 解释器和 pip

步骤 2:激活虚拟环境

在使用虚拟环境之前,必须先“激活”它。

# 在 Bash 或 Zsh shell 中
source venv/bin/activate

激活后,你的终端提示符前面会出现 (venv) 字样,表示你已在这个虚拟环境中了。

(venv) your_username@your_machine:~/your_project$

步骤 3:在虚拟环境中安装模块

你使用 pip 安装的任何模块都会被安装到 venv 文件夹内,而不会影响系统全局环境。

# (venv) 提示符下
pip install django
pip install pandas

步骤 4:退出虚拟环境

当你完成工作后,只需运行以下命令即可退出:

deactivate

终端提示符会恢复原样。


最佳实践:requirements.txt

当你在一个项目中安装了很多依赖后,如何告诉别人(或者未来的自己)这个项目需要哪些库以及它们的版本呢?答案是 requirements.txt 文件。

生成 requirements.txt

在激活了虚拟环境后,运行以下命令,pip 会自动扫描当前环境中所有的包及其版本,并生成一个 requirements.txt 文件。

# (venv) 提示符下
pip freeze > requirements.txt

生成的 requirements.txt 文件内容可能像这样:

asgiref==3.6.0
Django==4.1.7
sqlparse==0.4.3
...

使用 requirements.txt 安装依赖

当你在另一台新机器上(或者在新的虚拟环境中)部署这个项目时,你只需要:

  1. 克隆项目代码。
  2. 创建并激活虚拟环境。
  3. 运行以下命令,一键安装所有依赖:
# (venv) 提示符下
pip install -r requirements.txt

-r 参数表示从文件中读取依赖列表。


常见问题与解决方案

问题 1:pip 权限错误

现象:尝试使用 pip install 时,提示 Permission denied 或需要 sudo

# 错误示例
pip install some-package
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/usr/local/lib/python3.10/site-packages/...'

原因:你试图将模块安装到系统级的 Python 目录中,这需要管理员权限,并且可能会破坏系统环境。

解决方案强烈推荐使用虚拟环境,这是从根源上解决问题的最佳方法。

如果不使用虚拟环境,可以安装到用户目录下,这不需要 sudo

pip install --user some-package

模块会被安装到 ~/.local/lib/python3.x/site-packages/ 目录下。

问题 2:ModuleNotFoundError

现象:在 Python 脚本中 import module 时,提示 ModuleNotFoundError: No module named 'module_name'

原因

  1. 你忘记安装这个模块了。
  2. 你在一个虚拟环境中安装了模块,但在另一个(或全局)环境中运行脚本。
  3. Python 的模块搜索路径 (sys.path) 中没有包含模块的安装位置。

解决方案

  1. 确认安装:使用 pip3 list 查看模块是否已安装。
  2. 检查环境:确保你是在安装了该模块的虚拟环境中运行脚本,检查终端提示符是否有 (venv)
  3. 使用 --user:如果是在用户目录下安装的,确保你的脚本运行环境能找到 ~/.local 目录(这通常是默认的)。

问题 3:pip 命令找不到

现象bash: pip: command not found

原因:系统中没有安装 pip,或者 pip 的安装路径没有被添加到系统的 PATH 环境变量中。

解决方案: 如上文“准备工作”中所述,使用系统的包管理器(aptdnf)来安装 pip3

# Debian/Ubuntu
sudo apt install python3-pip
# CentOS/RHEL/Fedora
sudo dnf install python3-pip

其他安装方式(了解即可)

除了 pip,你可能还会遇到其他方式,但它们有特定的使用场景。

使用 apt 安装

对于一些非常基础、与系统库紧密相关的 Python 模块(如 numpy, sqlite3 等),Linux 发行版的官方仓库也可能提供它们。

优点

  • 通过系统包管理器安装,与系统集成度高。
  • 可能会链接到系统优化的底层库(如 MKL 加速的 numpy)。

缺点

  • 版本可能非常老旧,跟不上社区的更新速度。
  • 无法用 pip 进行管理,容易造成环境混乱。

示例 (Ubuntu/Debian)

sudo apt install python3-numpy

注意:除非你知道你在做什么,否则不建议使用 apt 来安装 Python 模块。pip 是社区的标准。

从源码编译安装

一些复杂的 C/C++ 扩展模块可能需要从源码编译安装,这通常是在 pip 安装失败时的备选方案。

步骤

  1. 从 PyPI 或 GitHub 下载源码压缩包(如 package-name.tar.gz)。
  2. 解压。
  3. 进入目录,运行:
    python3 setup.py build
    python3 setup.py install

    同样,为了避免权限问题,最好在虚拟环境中运行,或者使用 pip(它会自动处理这个过程)。

场景 推荐流程
开始新项目 mkdir my_project -> cd my_project -> python3 -m venv venv -> source venv/bin/activate -> pip install <package>
部署现有项目 git clone <project_url> -> cd project -> python3 -m venv venv -> source venv/bin/activate -> pip install -r requirements.txt
快速测试一个库 pip3 install <package> -> python3 -> import <package> (测试完后,最好用 pip3 uninstall <package> 清理)

记住这个黄金法则:虚拟环境是你的好朋友,requirements.txt 是你的项目护照,遵循它们,你的 Python 开发之路会平坦很多。

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