Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有可能为python创建一个可重写的脚本文件夹?_Python_Import_Embedding - Fatal编程技术网

是否有可能为python创建一个可重写的脚本文件夹?

是否有可能为python创建一个可重写的脚本文件夹?,python,import,embedding,Python,Import,Embedding,嵌入python的应用程序有一个脚本文件夹,其中包含python扩展包装代码和构建在其上的每个代码文件/其他应用程序代码,大致按包组织 我想为自定义脚本添加第二个文件夹,这样第一个文件夹在应用程序发布后就不需要更改,因此可以在不破坏自定义代码的情况下进行更新 这将是可能的,只需预先设置自定义脚本文件夹路径到PYTHONPATH,但除了上述需求之外,我希望能够覆盖原始代码库中的一些文件(有选择地),只需复制并调整这些文件 我的问题是,如果这些文件在我不想更改(因此也不想复制)的其他模块上进行导入,

嵌入python的应用程序有一个脚本文件夹,其中包含python扩展包装代码和构建在其上的每个代码文件/其他应用程序代码,大致按包组织

我想为自定义脚本添加第二个文件夹,这样第一个文件夹在应用程序发布后就不需要更改,因此可以在不破坏自定义代码的情况下进行更新

这将是可能的,只需预先设置自定义脚本文件夹路径到PYTHONPATH,但除了上述需求之外,我希望能够覆盖原始代码库中的一些文件(有选择地),只需复制并调整这些文件

我的问题是,如果这些文件在我不想更改(因此也不想复制)的其他模块上进行导入,那么就找不到这些模块,这是因为我覆盖了整个包

我“只是”希望有一种类似于通过执行

from wrapped_mod import *
def overriden_func(somestuff):
    print('overridden function, everything else comes out of wrapped_mod')
有人提示过如何在现有包层次结构上创建这样的“覆盖”吗


提前感谢您的想法

这似乎违反了Python包在基本级别的工作方式,如果可能的话,这可能不是一个好主意。你真正想要达到的目标是什么(为什么你需要这种行为)?可能有不同的解决方法。只需使用类而不是普通模块,就可以直接覆盖方法。@jochen ritzel:我对上述包层次结构中的代码没有影响,它主要用于自定义应用程序。因此,您的建议不是一个选项(或者至少是一个需要太多工作的选项…)