返回介绍

高级的模块选择概念

发布于 2024-01-29 22:24:16 字数 833 浏览 0 评论 0 收藏 0

一般来说,导入工作起来就像这一部分所介绍的那样:在机器上搜索并载入文件。然而,重新定义Python中import操作所做的事也是可能的,也就是使用所谓的导入钩子(import hook)。这些钩子可以让导入做各种有用的事,例如,从归档中加载文件,执行解密等。

事实上,Python使用这些钩子让文件可直接从ZIP文件库中导入:当选择一个在搜索路径中的.zip文件后,归档后的文件会在导入时自动解压缩。更多细节,可以参考Python标准库手册中关于内置的__import__函数的说明,这个函数是实际执行的import语句的可定制的工具。

Python也支持最佳化字节码文件.pyo,这种文件在创建和执行时要加上-O这个Python标志位。因为这些文件执行时会比普通的.pyc文件快一点(一般快5%),然而,它们并没有频繁的使用。Psyco系统(参考第2章)提供更实质性的加速效果。

第三方工具:distutils

本章对模块搜索路径设置的说明,主要是针对自己编写的用户定义的源代码。Python的第三方扩展,通常使用标准链接库中的distutils工具来自动安装,所以不需要路径设置,就能使用它们的代码。

使用distutils的系统一般都附带setup.py脚本,执行这个脚本可以进行程序的安装。这个脚本会导入并使用distutils模块,将这种系统放在属于模块自动搜索路径一部分的目录内(通常是在Python安装目录树下的Lib\site-packages子目录中,而不管Python安装到了目标机器的哪一部分)。

更多关于distutils分发和安装的细节,可参考Python标准手册集。它的使用不在本书范围之内(例如,此工具还提供一些方式,可在目标机器上自动编译C所编写的扩展)。此外,参考最近涌现出的第三方开源eggs系统,它增加了对已安装的Python软件的依存关系的检查。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文