Ubuntu 22.04 安装 Apache Libcloud 指南

在 Ubuntu 22.04 上以 Python 3.10 环境通过 pip 安装 Apache Libcloud 3.9.1,覆盖全局安装、venv 虚拟环境、离线 wheel 与 apt 发行版包四种方案,并完成版本验证、卸载与常见问题排查。

Apache LibcloudApache Libcloud2026/10/12

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:venvC:离线 wheelD: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

十三、参考链接