我正在尝试使用PyQt5创建应用程序,并且使用QWebEngine作为用户界面。 我已经成功地使应用程序,但现在我想使这个应用程序的插件机制,以便以后将更容易添加功能。我试过用Yapsy来做,但是后来我意识到我不能使用我所做的插件的相对导入
所以我决定用importlib模块自己创建它,然后我发现了这个问题
Using importlib to dynamically import module(s) containing relative imports
虽然答案本身并没有错,但在我想在包目录外加载模块的情况下,它不起作用
我的源代码可以找到here
正如您在我的源代码中看到的,有两个插件目录,myapp包内的插件和myapp包外的插件。myapp包中的plugins目录在那里,这样当它尝试导入时就不会给我任何ImportErrormyapp.plugins插件你知道吗
现在的问题是,当我使用python3 -m myapp
运行它时,它会给我带来ImportError $No module named 'myapp.plugins.extras'
。这就是我被困的地方。你知道吗
在谷歌上搜索了一段时间后,我发现了这篇文章
Dependency Injection with Import Hooks in Python 3
虽然概念本身正是我所需要的,但他提供模块的方式并不是我所期望的,因为他使用类而不是文件来提供模块。 所以我改变它来满足我的需要
你知道吗依赖性喷油器.py你知道吗
上面的大部分源代码都取自
importlib.machinery.SourceFileLoader
你知道吗插件管理器.py你知道吗
虽然上面的代码还不完善,但至少它已经满足了我的需要。你知道吗
相关问题 更多 >
编程相关推荐