Logo
Section 1 / 12

深入探究

学习 chardet 与 httplib2 设置脚本的工作原理并发布自己的软件

导入

深入探究

学习 chardet 与 httplib2 设置脚本的工作原理并发布自己的软件

真正的艺术家会交付作品。正如史蒂夫·乔布斯所说。你是否想发布一个 Python 脚本、库、框架或应用程序?太好了,世界需要更多 Python 代码。Python 3 自带一个名为 Distutils 的打包框架。Distutils 功能多样:它是构建工具(供你使用)、安装工具(供你的用户使用)、包元数据格式(供搜索引擎使用),还有更多功能。它与 Python 包索引(简称 PyPI)集成,PyPI 是开源 Python 库的中央仓库。

Distutils 的所有这些特性都围绕着一个核心——设置脚本,传统上称为 setup.py。事实上,本书中你已经见过多个 Distutils 的设置脚本。你在 HTTP Web 服务 中使用 Distutils 安装了 httplib2,又在 案例研究:将 chardet 迁移到 Python 3 中再次用它安装了 chardet。

在本章中,你将学习 chardet 和 httplib2 的设置脚本是如何工作的,并逐步掌握发布自己的 Python 软件的过程。

1# chardet 的 setup.py 2 3from distutils.core import setup 4setup( 5 name = "chardet", 6 packages = ["chardet"], 7 version = "1.0.2", 8 description = "通用编码检测器", 9 author = "马克·皮尔格里姆", 10 author_email = "mark@diveintomark.org", 11 url = "http://chardet.feedparser.org/", 12 download_url = "http://chardet.feedparser.org/download/python3-chardet-1.0.1.tgz", 13 keywords = ["编码", "国际化", "xml"], 14 classifiers = [ 15 "Programming Language :: Python", 16 "Programming Language :: Python :: 3", 17 "Development Status :: 4 - Beta", 18 "Environment :: Other Environment", 19 "Intended Audience :: Developers", 20 "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", 21 "Operating System :: OS Independent", 22 "Topic :: Software Development :: Libraries :: Python Modules", 23 "Topic :: Text Processing :: Linguistic", 24 ], 25 long_description = """\ 26通用字符编码检测器 27-------------------- 28 29支持检测以下编码: 30 - ASCII, UTF-8, UTF-16(两种变体),UTF-32(四种变体) 31 - Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN(繁体和简体中文) 32 - EUC-JP, SHIFT_JIS, ISO-2022-JP(日文) 33 - EUC-KR, ISO-2022-KR(韩文) 34 - KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251(西里尔文) 35 - ISO-8859-2, windows-1250(匈牙利语) 36 - ISO-8859-5, windows-1251(保加利亚语) 37 - windows-1252(英语) 38 - ISO-8859-7, windows-1253(希腊语) 39 - ISO-8859-8, windows-1255(视觉和逻辑希伯来语) 40 - TIS-620(泰文) 41 42此版本需要 Python 3 或更高版本;Python 2 版本可单独获取。 43""" 44)

chardet 和 httplib2 是开源项目,但你无需将自己的 Python 库以特定许可证发布。本章描述的过程适用于任何 Python 软件,无论采用何种许可证。

案例研究:将 chardet 迁移到 Python 3

Distutils 无法为你完成的事情