我正在創建一個Windows程序,迄今爲止有一個.bat文件調用.pyw文件,我需要Java和C++的函數。我如何做到這一點?(我不介意創建一個新的批處理文件或python文件,並且我已經擁有C++部分的頭文件和我的java組件的.jar文件(對於Java,我使用Eclipse Java Mars,它是Java 8u101))謝謝!如何從Python 2.7中調用C++和或Java函數?
回答
這對於C++來說非常簡單:你必須用函數編譯一個庫,用Python導入它,然後......調用它! Python有一個強大的標準庫ctypes來處理這類任務。
以下是從假設的libc.dll
加載print()
函數的示例。
from ctypes import *
libc = cdll.LoadLibrary("libc.dll")
>>> print(libc.time(None))
1150640792
在Python中調用Java在這裏覆蓋:How to call a java function from python/numpy?
[CFFI](https://cffi.readthedocs.io/en/latest/)是討論從Python調用C時值得提及的另一個模塊。 – Angew
謝謝,@Angew,我完全不瞭解CFFI,總是依靠純ctypes。絕對值得檢查! –
可以加載C++函數和Python的執行它像BasicWolf在他的回答解釋。對於Java而言,Jython可能是一個好方法。但是接下來會有一個問題 - 您需要依賴Jython,而Jython並不是最新版本的Python。您也將遇到不同庫的兼容性問題。
我建議編譯你的C++和Java函數來創建它們中的單個二進制文件。然後在Python中執行這些二進制文件,將參數作爲命令行參數傳遞。這樣你可以繼續使用CPython。您可以與任何語言編寫的程序進行互操作。
所以我可以把所有的C++命令編譯成一個DLL,把所有的Java命令編譯成另一個DLL,然後像@BasicWolf所說的那樣從Python腳本中調用這兩個命令? – RBXII3
- 1. 如何從python/numpy調用java函數?
- 2. 如何從python調用C函數?
- 3. 如何從java調用C#函數
- 4. 如何從c調用Java函數
- 5. 如何在Python 2.7中的函數調用中使用splat
- 6. 從Python調用C函數
- 7. 從C調用python函數#
- 8. 從C++調用Python函數
- 9. Python/Cython/C和回調函數,使用Cython從C調用Python函數
- 10. 從Java調用c函數
- 11. 從Java調用C++函數
- 12. Python - 從C調用python函數C
- 13. 如何調用Python函數在Java中
- 14. 從python腳本中調用java函數
- 15. 如何從Python中調用函數?
- 16. 如何從Python中調用OpenSSL函數
- 17. 如何從java中調用PLSQL函數
- 18. 如何從java中調用oracle函數
- 19. 我如何從C++或C或Java中提取註釋和函數名與Perl
- 20. 如何從Assembly中調用C函數?
- 21. 如何從python中的不同類啓動或調用函數?
- 22. 多個函數調用如何在Python 2.7
- 23. Python庫:如何從Python程序調用C++函數?
- 24. 如何從C調用C++函數?
- 25. 如何從C調用C++函數#
- 26. 如何從C調用C++函數?
- 27. 如何從python中的函數中提取變量2.7
- 28. 使用pybind11從C++調用Python函數
- 29. 如何從C-API中按名稱調用python函數?
- 30. 如何從Linux中的Python代碼調用C++函數?
如果這對您有意義:您可以查看www.jython.org - 也許這是您在JVM中運行Python代碼的一個選項。 – GhostCat