Ubuntu 22.04 安装 Apache Libcloud 指南
在 Ubuntu 22.04 上以 Python 3.10 环境通过 pip 安装 Apache Libcloud 3.9.1,覆盖全局安装、venv 虚拟环境、离线 wheel 与 apt 发行版包四种方案,并完成版本验证、卸载与常见问题排查。
Ubuntu 22.04 安装 Apache Libcloud 指南
目标:Apache Libcloud 是 Python 侧统一云资源接口库(Compute/Storage/DNS/LoadBalancer/Containers 五大 API),并非可独立启动的守护进程,因此本文以「库环境搭建」形态呈现——在 Ubuntu 22.04 上准备 Python 3.10 与 pip,实测四种安装方案(pip 全局、venv 虚拟环境、离线 wheel、apt 发行版包),完成版本验证、升级降级与卸载。已在 Ubuntu 22.04.5 LTS(x86_64)实测通过。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS,Kernel 6.8.0-138-generic,架构 x86_64(amd64)
- Python:3.10.12(系统默认
python3) - pip:22.0.2(
python3-pip包附带) - 目标库版本:apache-libcloud 3.9.1(当前最新稳定版)
- 安装位置(pip 方案):
/usr/local/lib/python3.10/dist-packages/libcloud - venv 路径(方案 B 示例):
/opt/libcloud-venv - pip 镜像源:清华大学镜像
https://pypi.tuna.tsinghua.edu.cn/simple
二、前置条件
- 已具备 root 或 sudo 权限,可执行
apt-get install。 - 服务器可联网访问 PyPI(本文实测使用清华镜像源加速;完全断网环境见第六节离线方案)。
- 服务器已安装 Python 3.10 或更高版本(apache-libcloud 3.9.1 的元数据要求
Requires-Python: >=3.10)。
三、版本选型说明
apache-libcloud 遵循语义化版本,以 PyPI 最新稳定版为准。用 pip 直接查询可用版本:
pip3 index versions apache-libcloud
真实回显(首行为最新稳定版,随后为全部历史版本):
apache-libcloud (3.9.1)
Available versions: 3.9.1, 3.9.0, 3.8.0, 3.7.0, 3.6.1, 3.6.0, 3.5.1, 3.5.0, 3.4.1, 3.4.0, 3.3.1, 3.3.0, 3.2.0, 3.1.0, 3.0.0, 2.8.3, 2.8.2, 2.8.1, 2.8.0, 2.7.0, 2.6.1, 2.6.0, 2.5.0, 2.4.0, 2.3.0, 2.2.1, 2.2.0, 2.1.0, 2.0.0, 1.5.0, 1.4.0, 1.3.0, 1.2.1, 1.1.0, 1.0.0, 0.20.1, 0.20.0, 0.19.0, 0.18.0, 0.17.0, 0.16.0, 0.15.1, 0.15.0, 0.14.1, 0.14.0, 0.13.3, 0.13.2, 0.13.1, 0.13.0, 0.12.4, 0.12.3, 0.12.1, 0.11.4, 0.11.3, 0.11.1, 0.11.0, 0.10.1, 0.9.1, 0.8.0, 0.7.1, 0.6.2, 0.6.1, 0.5.2, 0.5.0, 0.4.2, 0.4.0, 0.3.1
选型建议:
| 渠道 | 版本 | 适用场景 |
|---|---|---|
| PyPI 最新稳定版 | 3.9.1 | 新项目首选,驱动覆盖最全、缺陷修复最新 |
| PyPI 指定历史版本 | 3.8.0 等 | 老工程锁版本、回归验证 |
| Ubuntu 仓库发行版包 | 3.2.0-2(universe) | 仅用 apt 管控、不追新的保守环境 |
- 本文以 3.9.1 为实测版本;该版本要求 Python >= 3.10,Ubuntu 22.04 自带的 Python 3.10.12 满足要求。
- Ubuntu 22.04 仓库中的
python3-libcloud停留在 3.2.0-2,仅适合对版本无要求的场景。
四、在线安装方案(A:pip 全局安装)
4.1 安装 Python 3.10 与 pip
Ubuntu 22.04 默认自带 Python 3.10,若最小化安装无 pip,用 apt 补齐:
apt-get update -y
apt-get install -y python3 python3-pip python3-venv
安装完成后验证:
python3 --version
pip3 --version
真实回显:
Python 3.10.12
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
4.2 配置 pip 国内镜像源
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
真实回显:
Writing to /root/.config/pip/pip.conf
💡 说明:配置写入
/root/.config/pip/pip.conf,对所有用户的 pip 命令全局生效;如需按项目配置,可在项目根目录放pip.conf并配合PIP_CONFIG_FILE环境变量使用。
4.3 安装 apache-libcloud
pip3 install apache-libcloud
真实回显(关键行):
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting apache-libcloud==3.9.1
Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ed/fd/6dbe8405dfbd6980513af65901548e3ee894a2879f3be1627830f023e38e/apache_libcloud-3.9.1-py3-none-any.whl (3.8 MB)
Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/python3.10/dist-packages (from apache-libcloud==3.9.1) (2.34.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->apache-libcloud==3.9.1) (3.20)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->apache-libcloud==3.9.1) (3.5.2)
Requirement already satisfied: urllib3<3,>=1.26 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->apache-libcloud==3.9.1) (2.8.0)
Requirement already satisfied: certifi>=2023.5.7 in /usr/local/lib/python3.10/dist-packages (from apache-libcloud==3.9.1) (2026.7.22)
Installing collected packages: apache-libcloud
Successfully installed apache-libcloud-3.9.1
⚠️ 注意:以 root 身份执行 pip 会输出警告
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager.,属正常提示,不影响安装;生产环境建议改用第五节的 venv 方案。
4.4 验证安装
python3 -c "import libcloud; print(libcloud.__version__)"
pip3 show apache-libcloud
真实回显:
3.9.1
Name: apache-libcloud
Version: 3.9.1
Summary: A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org
Home-page:
Author:
Author-email: Apache Software Foundation <dev@libcloud.apache.org>
License: Apache License (2.0)
Location: /usr/local/lib/python3.10/dist-packages
安装目录确认:
python3 -c "import libcloud; print(libcloud.__file__)"
真实回显:
/usr/local/lib/python3.10/dist-packages/libcloud/__init__.py
五、venv 虚拟环境安装方案(B:推荐)
多项目共存、避免全局污染时优先使用 venv。创建独立虚拟环境并安装:
python3 -m venv /opt/libcloud-venv
/opt/libcloud-venv/bin/pip install --quiet --upgrade pip
/opt/libcloud-venv/bin/pip install apache-libcloud
真实回显(关键行):
Successfully installed apache-libcloud-3.9.1 certifi-2026.7.22 charset_normalizer-3.5.2 idna-3.20 requests-2.34.2 urllib3-2.8.0
在虚拟环境内验证:
/opt/libcloud-venv/bin/python -c "import libcloud; print(libcloud.__version__)"
/opt/libcloud-venv/bin/pip show apache-libcloud | grep -E "Version|Location"
真实回显:
3.9.1
Version: 3.9.1
Location: /opt/libcloud-venv/lib/python3.10/site-packages
日常使用时先激活环境再执行 Python 程序:
source /opt/libcloud-venv/bin/activate
python -c "import libcloud; print(libcloud.__version__)"
真实回显:
3.9.1
六、离线 wheel 包安装方案(C:断网)
内网隔离场景下,先在可联网机器用 pip download 下载 wheel 包及其全部依赖,再拷贝到目标服务器安装。
6.1 在联网机器下载 wheel 包
mkdir -p /tmp/wheels
pip3 download apache-libcloud==3.9.1 -d /tmp/wheels
真实回显(关键行):
Saved /tmp/wheels/apache_libcloud-3.9.1-py3-none-any.whl
Saved /tmp/wheels/requests-2.34.2-py3-none-any.whl
Saved /tmp/wheels/certifi-2026.7.22-py3-none-any.whl
Saved /tmp/wheels/charset_normalizer-3.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Saved /tmp/wheels/idna-3.20-py3-none-any.whl
Saved /tmp/wheels/urllib3-2.8.0-py3-none-any.whl
Successfully downloaded apache-libcloud requests certifi charset_normalizer idna urllib3
⚠️ 注意:下载机与目标服务器的操作系统、Python 版本需一致(本文均为 Ubuntu 22.04 + Python 3.10),否则平台相关的 wheel(如 charset_normalizer)可能不匹配。
6.2 在目标服务器离线安装
pip3 install --no-index --find-links=/tmp/wheels apache-libcloud==3.9.1
真实回显(关键行):
Processing /tmp/wheels/apache_libcloud-3.9.1-py3-none-any.whl
Processing /tmp/wheels/requests-2.34.2-py3-none-any.whl
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests, apache-libcloud
Successfully installed apache-libcloud-3.9.1 certifi charset-normalizer idna requests urllib3
验证:
python3 -c "import libcloud; print(libcloud.__version__)"
真实回显:
3.9.1
七、apt 发行版包安装方案(D)
Ubuntu 22.04 官方仓库提供 python3-libcloud 包(universe 源),适合完全由 apt 管控的环境:
apt-get update -y
apt-get install -y python3-libcloud
真实回显(关键行):
Setting up python3-cryptography (3.4.8-1ubuntu2.4) ...
Setting up python3-requests (2.25.1+dfsg-2ubuntu0.4) ...
Setting up python3-libcloud (3.2.0-2) ...
确认安装状态与版本:
dpkg -s python3-libcloud | grep -E "Package|Version|Status"
apt-cache policy python3-libcloud
真实回显:
Package: python3-libcloud
Status: install ok installed
Version: 3.2.0-2
python3-libcloud:
Installed: 3.2.0-2
Candidate: 3.2.0-2
Version table:
*** 3.2.0-2 500
500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
apt 包安装位置为 /usr/lib/python3/dist-packages/libcloud。
⚠️ 注意:pip 与 apt 同时安装时,pip 的版本优先生效(
/usr/local/lib/python3.10/dist-packages在sys.path中排在/usr/lib/python3/dist-packages之前)。实测同机并存两个来源后,python3 -c "import libcloud; print(libcloud.__version__)"输出仍为3.9.1(pip 版本);如需使用 apt 版本,应先卸载 pip 安装的那份。
八、多方案对比与选择建议
| 维度 | A:pip 全局 | B:venv | C:离线 wheel | D:apt 包 |
|---|---|---|---|---|
| 版本 | 3.9.1(最新) | 3.9.1(最新) | 3.9.1(任意指定) | 3.2.0-2(仓库冻结) |
| 是否需联网 | 需要 | 需要 | 仅下载机需要 | 需要(apt 源) |
| 安装位置 | /usr/local/lib/python3.10/dist-packages | /opt/libcloud-venv/lib/python3.10/site-packages | 同 A | /usr/lib/python3/dist-packages |
| 隔离性 | 差(全局共享) | 好(按项目隔离) | 同 A | 与 apt 生态耦合 |
| 升级便利 | pip3 install -U | 激活后 pip install -U | 重新 download + install | 受仓库版本限制 |
| 适用场景 | 单一用途服务器 | 开发/多项目生产 | 内网隔离环境 | 纯 apt 管控环境 |
选择建议:可联网选 B(venv,隔离最干净);内网隔离选 C;单用途跳板机可用 A;仅 apt 管控且不追新选 D。
九、配置说明
9.1 pip 配置文件位置
pip3 config list
配置全局镜像源后回显:
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
对应文件 /root/.config/pip/pip.conf 内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
9.2 库级配置
Libcloud 自身无需配置文件即可使用;证书校验、超时、重试等运行参数通过 libcloud.security 模块、驱动构造参数与环境变量设置,详见《Apache Libcloud 配置参数详解》。
十、注意事项
- apache-libcloud 3.9.1 要求 Python >= 3.10(wheel 元数据
Requires-Python: >=3.10);Ubuntu 20.04 的 Python 3.8 无法安装,需先升级 Python。 - 该库的存储本地驱动依赖
fasteners包,按需单独安装(见 FAQ 11.1)。 - pip 与 apt 两个来源并存时以 pip 版本优先,建议同一台服务器只保留一个来源。
- 升级后建议重新运行验证命令确认
libcloud.__version__,再切换业务流量。
十一、常见问题(FAQ)
Q1:导入 storage 本地驱动时报 ImportError: Missing fasteners dependency?
现象(真实报错):
ImportError: Missing fasteners dependency, you can install it using pip: pip install fasteners
定位:libcloud/storage/drivers/local.py 在模块顶部尝试 import fasteners,本地文件锁机制依赖该包,而它不在 apache-libcloud 的必装依赖里。解决:
pip3 install fasteners
安装后重新执行原脚本即可通过。
Q2:pip 安装时出现 WARNING: Running pip as the 'root' user ... 是否需要处理?
该警告提示 root 全局安装可能影响系统包管理器,不影响功能。规避方式是第五节的 venv 方案;确需全局安装时可忽略。
Q3:python3 -c "import libcloud" 报 ModuleNotFoundError: No module named 'libcloud'?
两种常见原因:一是尚未安装(执行 4.3 安装即可);二是使用了 venv 但未激活或误用了系统 Python——确认 which python3 指向的环境与 pip3 show apache-libcloud 的 Location 是否一致。真实卸载后复现的报错:
ModuleNotFoundError: No module named 'libcloud'
Q4:访问自签名 HTTPS 接口报 CERTIFICATE_VERIFY_FAILED?
Libcloud 3.9.1 默认开启 SSL 证书校验(libcloud.security.VERIFY_SSL_CERT 默认 True),自签名证书会校验失败。正确做法是将自签名证书加入信任(设置 libcloud.security.CA_CERTS_PATH 或导出 SSL_CERT_FILE 环境变量),具体方法与实测回显见《Apache Libcloud 配置参数详解》。
Q5:pip 安装速度慢或超时?
配置国内镜像源(见 4.2);离线环境改用第六节 wheel 方案。
十二、卸载与清理
pip 全局安装的卸载:
pip3 uninstall -y apache-libcloud
真实回显:
Found existing installation: apache-libcloud 3.9.1
Uninstalling apache-libcloud-3.9.1:
Successfully uninstalled apache-libcloud-3.9.1
卸载后验证(应报错):
python3 -c "import libcloud; print(libcloud.__version__)"
真实回显:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'libcloud'
venv 方案的清理(直接删除虚拟环境目录即可):
deactivate 2>/dev/null; rm -rf /opt/libcloud-venv
apt 方案的卸载:
apt-get remove --purge -y python3-libcloud
apt-get autoremove -y
十三、参考链接
- Apache Libcloud 官网:https://libcloud.apache.org
- 官方文档(Getting Started):https://libcloud.readthedocs.io/en/latest/getting_started.html
- PyPI 项目页:https://pypi.org/project/apache-libcloud/
- GitHub 仓库:https://github.com/apache/libcloud
- SSL 证书校验说明:https://libcloud.readthedocs.org/en/latest/other/ssl-certificate-validation.html