python - Hook Python 标准库模块

标签 python multithreading import python-3.x

问题

我已经为 Python 编写了一个替换 threading 模块。将标准库中常用的 threading 模块的所有使用与我自己的连接在一起的最佳方法是什么? Hook 应该是选择加入的,并且基于每个项目或每个可执行文件。

当这条语句被执行时:

import threading

我希望加载我的模块而不是默认模块。

请注意,将来我可能还会挂接其他几个标准模块,因此解决挂接几个模块的解决方案是最好的。

为什么

我已经通过 greenlets 和 Linux 的 eventfd()epoll() 系统调用实现了 IO 并发。它透明地工作,除了 sys.modules Hook 和替换 socket 类。希望使这种 Hook 更好、更一致。

最佳答案

您可以尝试使用 python 的 meta_path 钩子(Hook):

http://www.python.org/dev/peps/pep-0302/

它将允许您添加一个可以覆盖部分导入过程的对象。我认为您可以用这种方式用您自己的模块替换标准模块。不过,我不确定它是否比修补 sys.modules 更好。

关于python - Hook Python 标准库模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509016/

相关文章:

android - 内容提供商是否是单个阻止实例?

python - Visual Studio Code 告诉我它不能导入 python 模块,但它运行代码

Python - 在回归中减去两个变量而不创建新变量

python - 如何使用 Tumblr API 将嵌入的视频发布到 Tumblr?

python - 在 Tkinter 中执行函数期间程序卡住

python : Having issue to Import a function from a file in a different folder

Android + Eclipse 如何将增强型ListView项目导入到我的项目中?

python - Pandas 在不同数量的行中为每个 ID 选择三行

python - Seaborn clustermap 不显示所有行注释

java - 如何停止在 UIThread 上运行的 Runnable