我目前正在開發一個項目,將一個Matlab程序導入到python中作爲插件集成到ImageJ中。該程序包含Mex文件,源代碼是用C++編寫的。有沒有一種方法可以調用C++函數而不必在python中重寫它們。謝謝!!!從Python中調用C/C++代碼
回答
如果您可以將您的程序構建爲共享庫,那麼您可以使用外部函數接口來調用您的函數。
與使用Cython封裝函數或編寫自己的C-API擴展相比,這通常少工作(且不那麼複雜),但它的用途也更加有限。因此,我建議從開始,如果您發現不適合您的需求,則可以繼續使用Cython。
但是,對於簡單的庫,會做得很好(我使用它很多)。
感謝您的答覆!環顧四周,看起來ctypes是最容易的出發點。另外,我可以從ImageJ環境中導入** ctypes **,這對我的項目非常重要(該項目將Matlab程序轉換爲imageJ插件)。但是,我從來沒有建立任何共享庫。如果它太複雜,我可能會問你求助。但感謝您的幫助。非常感謝。 – Haider
@ThePathan:不要忘記選擇你最喜歡的答案,在左邊標記**✓**。 –
歡迎來到Stack Overflow!
您需要將這些C函數封裝到python C擴展中,通過Python C-API,以便它們可以從python調用;不過,我可以從經驗告訴你,如果你不知道自己在做什麼,這項任務可能會令人頭疼。我想推薦檢出cython。它使編寫C擴展與編寫Python代碼一樣簡單!
- 1. 從Ruby調用python代碼
- 2. 從python調用jython代碼
- 3. 從Python調用PHP代碼
- 4. 從python調用java代碼
- 5. 如何從Excel中調用python代碼?
- 6. 調用Python代碼
- 7. 使用pythonnet從python調用C#代碼
- 8. 從Objective-C調用Python代碼
- 9. Cython:從C程序調用Python代碼
- 10. 從LLVM調用Python代碼JIT
- 11. SWIG從內部調用Python代碼c
- 12. 從C線程調用Python代碼
- 13. 從Gnome Shell擴展調用Python代碼
- 14. 從C調用python代碼(.py文件)#
- 15. 從VSTO調用Python代碼excel插件
- 16. 在Animate中將代碼濾鏡應用於代碼對象CC
- 17. Adode CC createjs代碼示例
- 18. 在Python中嵌入Python:嘗試在Python代碼調用的C回調中調用Python代碼時出錯
- 19. 從C++代碼中調用Python調試的有效方法
- 20. 替代python-config可從Python中調用
- 21. 調試器中的「cc」操作碼
- 22. python中的調試代碼
- 23. 從背後的代碼調用javascript與從javascript調用代碼
- 24. Python代碼調試
- 25. Python代碼從html代碼中消失
- 26. 在Python代碼中調用參數
- 27. 從Python代碼
- 28. 從本機代碼調用Java代碼?
- 29. 從uWSGI主循環中調用python代碼
- 30. 如何從Linux中的Python代碼調用C++函數?
你想如何調用C函數?這些功能是什麼?它們是否可用作Python函數? – Schorsch
@ThePathan:我想,你將無法直接從Python調用MEX函數。您需要實現所有MATLAB MEX API函數,這似乎是不可能的,除非您使用MATLAB。 – nneonneo
...查看[這個問題](http://stackoverflow.com/questions/6848790/embed-a-function-from-a-matlab-mex-file-directly-in-python)瞭解更多詳情。 – nneonneo