gpt4 book ai didi

Python覆盖3rd party包单个文件

转载 作者:行者123 更新时间:2023-12-04 18:18:11 29 4
gpt4 key购买 nike

什么是重写python任何第三方包装单个文件的最佳方法?

认为。

我有一个名为 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.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

演示: https://repl.it/@blhsing/ComplicatedGrandUnits

关于Python覆盖3rd party包单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59485143/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com