Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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_Module - Fatal编程技术网

Python 告诉模块首先由模块本身导入?

Python 告诉模块首先由模块本身导入?,python,import,module,Python,Import,Module,我已经为我的游戏添加了对mods的支持。任何放在特定文件夹中的Python模块都会在启动时自动导入。一切都很好,除了现在我已经编写了一个官方的mod,它允许mod制作者轻松地将他们mod的GUI设置添加到一个可切换的GUI框架中。他们不必使用它,但它极大地简化了添加带有辅助功能的GUI设置,并使玩家的工作更有条理、更简单 问题是因为它本身是一个mod,在启动时与其他mod(Python模块)一起导入,所以如果有另一个mod前面有一个名称,它就不能使用我的mod。我知道我可以在我的模块名称中添加“

我已经为我的游戏添加了对mods的支持。任何放在特定文件夹中的Python模块都会在启动时自动导入。一切都很好,除了现在我已经编写了一个官方的mod,它允许mod制作者轻松地将他们mod的GUI设置添加到一个可切换的GUI框架中。他们不必使用它,但它极大地简化了添加带有辅助功能的GUI设置,并使玩家的工作更有条理、更简单

问题是因为它本身是一个mod,在启动时与其他mod(Python模块)一起导入,所以如果有另一个mod前面有一个名称,它就不能使用我的mod。我知道我可以在我的模块名称中添加“0”或其他内容,但这并不是很干净,你也不能确定有人不会这样命名自己的mod模块

所以我想知道是否有任何方法可以告诉Python先导入一个模块,在模块内部指定它?我很确定没有,但谁知道呢

我想到的一个解决方案是创建一个子文件夹,首先搜索模块


另一个可能是合并国防部的代码与游戏的。不要这样做,以免给人留下这样的印象,即这是添加mod设置的唯一方法。

为什么不列出需要加载的所有“系统”模块的列表,这些模块将首先导入,然后在子文件夹中查找所有mod并导入


这样,您仍然可以维护您的基本系统,并且只有在之后才能加载后续的用户mod

你的意思是有一些正式的模块名称硬编码到游戏中并首先搜索?嗯,问题是如果其他人制作了一个应该先导入并提供的mod,该怎么办?但至少这是个好主意。谢谢。像一个完整的转换模型?如果是这样的话,启动基本系统的初始“加载器”肯定会指向它们的基本初始化器吗?我只是指一个用于其他mod的mod(因此必须在它们之前导入)。无论如何,发现根本没有问题。。。(阅读对我帖子的回复)其他mod如何访问你的官方mod?通过
import
?或者使我的mod的类实例成为内置的(我知道,这不是最好的主意)。import语句已经导致在继续执行导入模块之前执行导入的模块。也许你一点问题都没有?搔头,感觉像个白痴我应该告诉mod制造商进口他们依赖的其他mod…我真的不知道一个很好的解决方案,但似乎没有什么特别干净的。研究一下其他工具如何处理插件,例如Sphinx或Django,怎么样?