安装 ansible-pylibssh

此页面介绍了如何使用 pip 安装 ansible-pylibssh。如果您不确定是否已设置它,请参阅 pip 文档

预编译二进制发行版

ansible-pylibssh 包含 Cython 基于的 CPython C 扩展模块。与 纯 Python 模块 不同,这些模块必须在使用之前进行预编译。

我们在 PyPI 上发布了 特定于平台的 wheel。它们针对不同的架构、CPython 和操作系统版本构建,因此在 99% 的情况下,您可以无缝安装 ansible-pylibssh,而无需在系统上安装任何外部依赖项。

您只需安装 Python 3.6+ 和最新版本的 pip 即可。

注意

请确保您已安装最新版本的 pip,然后再安装 ansible-pylibssh。

如果您安装的 pip 版本低于 8.1,则它将无法从 PyPI 中获取特定于操作系统的 Python 包发行版,并将尝试回退到从源代码构建它,这将需要更多额外的依赖项才能成功。您可以按照 pip 的升级说明 进行升级。

要安装 ansible-pylibssh,只需运行以下命令

$ pip install --user ansible-pylibssh

提示

避免使用 sudo 运行 pip,因为这会对系统进行全局更改。由于 pip 不会与系统包管理器协调,因此它可能会对您的系统进行更改,使其处于不一致或无法正常工作状态。这对 macOS 来说尤其如此。建议使用 --user 进行安装,除非您完全了解修改系统全局文件的含义。

从源代码发行版 (PyPI) 安装 ansible-pylibssh

从源代码安装 ansible-pylibssh 稍微复杂一些。首先,pylibssh 需要编译 libssh,特别是版本 0.9.0 或更高版本。有关安装它的更多信息,请参阅 libssh 下载页面。请确保您也拥有开发头文件。

另一个重要的构建依赖项是 GCC。您可能已经安装了它,但如果没有,请参阅您的操作系统文档。

准备好构建先决条件后,以下命令应下载 tarball,构建它,然后将其安装到当前环境中

$ pip install \
    --user \
    --no-binary ansible-pylibssh \
    ansible-pylibssh

提示

如果您的 libssh-dev 副本安装在非默认目录中,请确保在 pip install 命令之前添加编译器环境变量(例如 CFLAGS=-I/usr/local/include)。对于使用 Homebrew 安装 libssh 的 macOS 用户,设置 CFLAGS="-I $(brew --prefix)/include -I ext -L $(brew --prefix)/lib -lssh" 应该就足够了。

从 Git 的 devel 分支构建 ansible-pylibssh 发行版

由于我们的构建流程以 tox 为中心,因此让我们先安装它

$ python -m pip install 'tox >= 3.19.0' --user

现在,让我们获取 ansible-pylibssh 的源代码

$ git clone https://github.com/ansible/pylibssh.git ~/src/github/ansible/pylibssh
$ # or, if you use SSH:
$ git clone git@github.com:ansible/pylibssh.git ~/src/github/ansible/pylibssh
$ cd ~/src/github/ansible/pylibssh
[dir:pylibssh] $

最后,您可以使用以下命令为当前环境构建发行版

[dir:pylibssh] $ tox -e build-dists

如果您想生成所有 manylinux 兼容 wheel 的矩阵,请使用

[dir:pylibssh] $ tox -e build-dists-manylinux1-x86_64  # with Docker

[dir:pylibssh] $ # or with Podman
[dir:pylibssh] $ DOCKER_EXECUTABLE=podman tox -e build-dists-manylinux1-x86_64

另请参阅

ansible-pylibssh 入门

入门示例

持续交付

使用 nightly build 测试您的项目