Official Python logo

Contents

  1. 简介
  2. Debian 中的 Python
    1. 维护者
    2. 支持的 Python 版本
  3. Python 开发者的 Debian Python 策略
  4. 与上游的偏差
  5. 推荐做法
  6. 从源码安装
  7. 另见

简介

Python 是一种高级、交互式的面向对象语言,包含了丰富的类库,涵盖网络编程、系统管理、音频和图形处理等功能。Debian 提供最新的稳定版 Python 3;也提供最新的稳定版 Python 2,但 Python 2 自 2020年01月01日 起已不再受 Python 基金会支持,并从 Debian 11 (Bullseye) 开始被移除。Debian 还可能提供其他版本以及大量第三方包。Python 是 Debian 生态系统的重要组成部分。

Python 非常容易学习。如果想开始学习 Python 编程,可以从 DebianWomen/PythonTutorial 或官方的 在线教程 开始。你可能还会对 Python wikiPython FAQ在线文档 感兴趣。

Python 编程语言编写的软件由 Python 解释器执行。通常会被编译成平台无关的字节码文件以提高性能。Python 会在 *.py 源文件旁边编译并写入 *.pyc 字节码文件。扩展模块也可以用 C 编写,以 .so 共享库的形式分发。

因此,纯 Python 编写的软件可以以源代码或编译后的字节码形式分发。后者类似于 Java。

Debian 中的 Python

[ATTACH]

由于支持数百个 Python 模块和多个 Python 版本,Debian 是最大的"集成 Python 发行版"。其他操作系统(如 Windows 和 OS X)的用户也可以通过虚拟化受益于这种集成工作(例如,参见 NeuroDebian VM 页面获取简单的入门方法)。

另请参阅 打包样式指南Python 打包 wiki 页面。

截至 2015年10月09日,我们现在在 Git 中维护所有软件包。这是团队使用 git 管理团队软件包 的策略。

注意:Debian 11 (bullseye) 由于 Python 2 的弃用,已移除 "python" 软件包和 '/usr/bin/python' 符号链接。打包的脚本不应依赖 '/usr/bin/python' 的存在:如果依赖,这是一个应该向 Debian 报告的 bug。你可以使用 'python-is-python3' 或 'python-is-python2' 软件包为第三方或旧版脚本恢复适当的 '/usr/bin/python' 符号链接。另见 Python/FAQ#Python_2_support

维护者

在 Debian 项目中,Python 软件包由个人开发者和两个主要团队维护:

还有:

支持的 Python 版本

  • Debian Trixie 包含 3.13

  • Debian Bookworm 包含 3.11

  • Debian Bullseye 包含 3.9,对 2.7 的最小支持

  • Debian Buster 包含 Python 2.7、3.7

  • Debian Stretch 包含 Python 2.7、3.5

  • Debian Jessie 包含 Python 2.7、3.4

  • Debian Wheezy 包含 Python 2.7、3.2

  • Debian Squeeze 包含 Python 2.5、2.6(默认)、3.1

  • Debian Lenny 包含 Python 2.4 和 2.5(默认)

  • Debian Testing 包含一些 3.x

  • Debian Unstable 包含一些 3.x

  • Debian experimental 可能还包含一些(实验性的!)软件包 3.x

这些链接列出了提供给定 Python 版本的发行版:

Python 开发者的 Debian Python 策略

Debian Python 策略 描述了在 Debian 中打包和分发 Python 代码的约定。

如有任何问题,请随时在 debian-python@lists.debian.org 邮件列表上提问。

如果你想维护一个 Python 软件包,需要了解 Debian 开发 的工作方式。

与上游的偏差

Debian 发行版在一些方面修改了上游 Python,这些是需要理解的重要内容。当然,我们尽可能减少与上游的偏差,但以下是你在 Debian 系统(及衍生版本,如 Ubuntu)上可能遇到的更改。

  • 使用 dist-packages 而不是 site-packages。从 Debian 软件包安装的第三方 Python 软件进入 dist-packages,而不是 site-packages。这是为了减少系统 Python 与你可能手动安装的 从源码构建的 Python 之间的冲突。

  • 由于许可证中限制性的再分发条款不符合 DFSG,标准的 profile 和 pstats 模块未包含在内。但包含了 cProfile 和 hotshot。
  • 在 Debian 7 (Wheezy) 中,python-setuptools 软件包安装的是 Distribute 分支而不是标准的 setuptools。在 Debian 8 (Jessie) 中,我们恢复到合并的 setuptools 项目。

  • 同样在 Debian 7 (Wheezy) 中,python-virtualenv 默认也使用 distribute,但可以通过可选开关启用经典的 setuptools。如上所述,在 Debian 8 (Jessie) 中只使用合并的 setuptools。

  • distutils 安装脚本将文件安装在 /usr/local/ 而不是 sys.prefix(通常是 /usr/)。这是因为 /usr/ 保留给从 Debian 软件包安装的文件。注意 /usr/local/lib/pythonX.Y/dist-packagessys.path 中,因此不是从 Debian 软件包安装的模块仍可以被系统 Python 访问。在构建 Debian 软件包时,debhelper 等工具会向安装脚本传递 --install-layout=deb 选项,以便将文件安装到 /usr/ 而不是 /usr/local/

  • Python 2.7、3.3 和 3.4 支持 ?multiarch。

推荐做法

从源码安装

如果你需要最新版本或 Python 的开发版本,可能需要从源码安装。 为此,首先确保你有构建依赖。以 root 身份运行:"aptitude build-dep python3"

Python 下载页面 选择你的版本并下载所选版本的 "Gzipped source tarball"。 下载归档文件后,使用 "tar -xvf Python-<完整版本名>.tgz" 解压。 完成后,使用 "cd Python-<完整版本名>" 进入该目录,并使用以下命令从源码编译 Python:"./configure && make && make test"(作为普通用户)。 要在不损坏使用 APT 安装的系统 Python 的情况下全局安装,使用 altinstall 目标(作为 root):"make altinstall"。

另见


CategorySoftware | CategoryProgramming

AltStyle によって変換されたページ (->オリジナル) /