python - Python 覆盖 3rd 方包单个文件
问题描述
覆盖 python 任何 3rd 方包单个文件的最佳方法是什么?
认为。
我有一个名为foo的包。Foo 包含具有导入行的文件 tar.py。
压缩包
from xyz import abc
# some code
如何替换单行导入
# from
from xyz import abc
# to
from xyz.xy import abc
我想在 python 项目中的 virtualenv 之外更改这一行
解决方案
builtins.__import__
您可以使用将包名称更改为的包装函数覆盖,'xyz.xy'
如果它等于'xyz'
:
def my_import(name, *args, **kwargs):
if name == 'xyz':
name = 'xyz.xy'
return original_import(name, *args, **kwargs)
import builtins
original_import = __import__
builtins.__import__ = my_import
from foo import tar
推荐阅读
- php - 下载 php 文件而不是使用 nginx 和 docker 执行
- bootstrap-4 - 如果我们已经有用于创建响应式网站的引导类,为什么还要使用媒体查询
- python - 系列和数据框之间的区别
- c - 声明未定义的行为
- ios - InstantiateViewController(identifier:creator:)' 仅适用于 iOS 13.0 或更高版本
- c++ - Qt - 为什么我在 qml 资源中添加 10Mb 文件后 Visual Studio 2019 无法再编译我的项目?
- bash - 允许自动完成 Ansible playbook 中的标签
- wordpress - 如何从 foreach 循环中删除重复的结果
- javascript - 如何将 react-chartjs-2 与 chartjs-plugin-datasource 集成以在 s3 url 处使用数据源
- javascript - 找不到“EJS”打字稿和快递