[英]Python override 3rd party package single file
覆盖 python 任何 3rd 方包单个文件的最佳方法是什么?
认为。
我有一个名为foo的包。 Foo 包含文件 tar.py,其中有一个导入行。
tar.py
from xyz import abc
# some code
我如何替换单行导入
# from
from xyz import abc
# to
from xyz.xy import abc
我想在 python 项目中的 virtualenv 之外更改这一行
您可以使用包装函数覆盖builtins.__import__
,如果它等于'xyz'
,该函数将包名称更改为'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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.