簡體   English   中英

可以加載C / C ++和Python插件的應用程序

[英]Application that can load both C/C++ and Python plugins

我想創建一個能夠加載插件的應用程序。 我想能夠在C / C ++和Python中創建插件。

因此,我已經開始考慮這個問題,並希望提出一些問題,希望人們能為我提供幫助。

我的第一個問題是我是否需要對應用程序的“核心”(實際上是插件的加載部分)使用C / C ++? 至少我的感覺是,我認為在Python中實現該內核會導致性能下降,但它可能會簡化動態加載插件的過程。

第二個問題是我該如何一方面定義C / C ++的插件接口,另一方面定義Python? 插件接口將非常簡單,只需一個方法即可將圖像列表作為參數並返回圖像列表作為返回值。 我可能會在C / C ++和Python都存在的插件中使用OpenCV圖像類型。

最后,我希望該應用程序動態發現插件。 因此,如果將.py文件或共享庫文件(.so / .dll)放在此目錄中,則應用程序將能夠在運行時生成可用插件的列表。

我在Boost庫中找到了名為Boost.Extension(http://boost-extension.redshoelace.com/docs/boost/extension/index.html)的內容,但不幸的是,它似乎並未成為官方Boost庫的一部分現在看來也有些陳舊。 最重要的是,我不知道它與Python一起使用的效果如何,也就是說,創建適合該機制的Python插件有多么容易。

作為附帶說明,我想應用程序分為兩個“部分”。 一部分是精簡核心(從“配方”加載和調用插件實例)。 另一部分是核心以及我計划用Python(使用PySide)編寫的GUI。 該GUI將使用戶能夠定義上述“食譜”。 該GUI部分將要求內核能夠提供可用插件的列表。

很抱歉,這個冗長的“問題”。 我想我希望進行更多的討論,當然,如果有人知道類似的東西會對我有所幫助,我將非常感謝一個指針。 我也希望簡明扼要地閱讀有關類似內容(例如集成C / C ++和Python等)的材料。

用Python編寫應用程序,然后可以為您的插件創建一個文件夾。

您的應用程序通過檢查目錄/遍歷插件樹來搜索它們。

然后通過“導入”導入它們,或者將ctypes用於.so / .dll,甚至更簡單:您可以使用boost :: python創建一個可以像普通python模塊一樣“導入”的.so / .dll。

不要使用C ++並嘗試使用Python編寫腳本-確實很糟糕,您會后悔的。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM