我想從我的C++程序中調用python腳本文件。從C++程序調用python進行分發
我不確定我將分發給的人將安裝python。
基本上我正在尋找一個.lib文件,我可以使用它具有Apache分發許可證。
我想從我的C++程序中調用python腳本文件。從C++程序調用python進行分發
我不確定我將分發給的人將安裝python。
基本上我正在尋找一個.lib文件,我可以使用它具有Apache分發許可證。
Boost有一個可以幫助你的python界面庫。
Embeding你的C內的Python解釋++應用程序將讓你運行使用你的應用程序運行Python腳本Python程序。它還將使這些腳本更容易在您的應用程序中調用C++函數。如果這是你想要的,那麼前面提到的Boost庫可能就是你想讓它更容易創建鏈接的東西。在過去,我使用SWIG來生成C++代碼的Python接口。從你的問題來看,你是不是想讓Python腳本調用你的C++程序,或者你是否想讓C++調用Python。
許多Python函數都使用了不是內置於Python解釋器的模塊。如果你的Python腳本調用這些函數,那麼你需要讓你的用戶安裝Python或者在你的應用程序中包含python運行時文件。它將取決於你在Python腳本中導入的模塊。
Boost可能是最好的選擇,但是如果你想要更獨立的東西,並且如果這是用於Windows的話(這似乎是可行的,因爲它們是最不可能安裝Python的人),那麼你可以使用py2exe創建一個適合於COM對象的入口點的DLL。然後您可以通過COM與庫連接。 (很顯然,這不是一個跨平臺的解決方案)。
我想從我的C++程序中調用python腳本文件。
這意味着您想要將Python嵌入到C++應用程序中。正如Embedding Python in Another Application中提到的:
嵌入Python與 相似,但並不完全。該 不同的是,當你擴展 Python中, 應用程序的主程序仍是Python的 解釋,而如果你嵌入 Python中,主程序可能 無關的Python - 而是 一些零件應用程序 偶爾會調用Python解釋器來運行一些Python代碼。
我建議你先去Embedding Python in Another Application。然後請參閱下面的例子
如果你喜歡Boost.Python,您可以訪問以下鏈接:
這不適用於比2008年更晚的任何Visual Studio版本,因爲那是編譯windows的python。如果您發現或能夠使用更高版本的運行時自己編譯python版本,則可以這樣做。我剛剛花了一天的時間嘗試使用vs 2013編譯python,但沒有取得任何成功。 – David 2014-04-29 16:01:06
爲什麼人們運行Windows更可能已經安裝了Python? – 2017-10-27 18:51:41