2. 在 Unix 平台上使用 Python — Python 文档

来自菜鸟教程
Python/docs/3.10/using/unix
跳转至:导航、​搜索

2. 在 Unix 平台上使用 Python

2.1. 获取并安装最新版本的 Python

2.1.1. 在 Linux 上

Python 预装在大多数 Linux 发行版上,并且在所有其他发行版上都作为包提供。 但是,您可能想要使用发行版软件包中没有的某些功能。 您可以轻松地从源代码编译最新版本的 Python。

如果 Python 没有预先安装并且不在存储库中,您可以轻松地为自己的发行版制作包。 看看以下链接:

2.1.2. 在 FreeBSD 和 OpenBSD 上

  • FreeBSD 用户,添加软件包使用:

    pkg install python3
  • OpenBSD 用户,添加包使用:

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz

    例如,i386 用户使用以下命令获取 2.5.1 版本的 Python:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz


2.1.3. 在 OpenSolaris 上

你可以从 OpenCSW 获取 Python。 有各种版本的 Python 可用,并且可以安装,例如 pkgutil -i python27


2.2. 构建 Python

如果你想自己编译 CPython,你应该做的第一件事就是获取 源代码 。 您可以下载最新版本的源代码,也可以直接获取一个新的 clone。 (如果你想贡献补丁,你需要一个克隆。)

构建过程由常用命令组成:

./configure
make
make install

配置选项 和特定 Unix 平台的注意事项在 Python 源代码树根目录下的 :source:`README.rst` 文件中有详细记录。

警告

make install 可以覆盖或伪装 python3 二进制文件。 因此建议使用 make altinstall 而不是 make install,因为它只安装 exec_prefix/bin/pythonversion


2.4. 各种各样的

要在 Unix 上轻松使用 Python 脚本,您需要使它们可执行,例如 和

$ chmod +x script

并在脚本顶部放置适当的 Shebang 行。 一个好的选择通常是

#!/usr/bin/env python3

它在整个 PATH 中搜索 Python 解释器。 但是,某些 Unices 可能没有 env 命令,因此您可能需要将 /usr/bin/python3 硬编码为解释器路径。

要在 Python 脚本中使用 shell 命令,请查看 subprocess 模块。


2.5. 自定义 OpenSSL

  1. 要使用供应商的 OpenSSL 配置和系统信任存储,请在 /etc 中找到包含 openssl.cnf 文件或符号链接的目录。 在大多数发行版中,文件位于 /etc/ssl/etc/pki/tls。 该目录还应包含 cert.pem 文件和/或 certs 目录。

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
  2. 下载、构建和安装 OpenSSL。 确保使用 install_sw 而不是 installinstall_sw 目标不会覆盖 openssl.cnf

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
       $ tar xzf openssl-VERSION
       $ pushd openssl-VERSION
       $ ./config \
            --prefix=/usr/local/custom-openssl \
            --libdir=lib \
            --openssldir=/etc/ssl
       $ make -j1 depend
       $ make -j8
       $ make install_sw
       $ popd
  3. 使用自定义 OpenSSL 构建 Python(请参阅配置 –with-openssl 和 –with-openssl-rpath 选项)

    $ pushd python-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/python-3.x.x
    $ make -j8
    $ make altinstall

笔记

OpenSSL 的补丁版本具有向后兼容的 ABI。 您无需重新编译 Python 即可更新 OpenSSL。 用更新的版本替换自定义 OpenSSL 安装就足够了。