簡體   English   中英

有沒有辦法將在 C++ 中創建的變量加載到 python 解釋器?

[英]Is there any way to load a variable created in C++, to the python interpreter?

我正在尋找某種方法將在 C++ 中創建和初始化的變量傳遞給 Python。

這個想法是在 C++ 中創建一個類“WorkSpace”。 我們在這個類中指明我們想要傳遞給 python 的解釋器的 C++ 變量。 目的是一次性將變量加載到 Python 中,以便能夠執行使用我們剛剛傳遞給解釋器的這些變量的腳本。 我不想圍繞要在 python 中執行的 C++ 代碼創建“包裝器”。 目標不是優化(速度處理),而是多功能性。

最后,“Workspace”類將充當 C++ 和 Python 之間的中介。 通過這種方式,我們可以要求他將 c++ 的變量傳遞給 python,反之亦然。 我們可以請求將在 python 中創建的變量返回給 C++。

例如,我們在 C++ 中創建並初始化了兩個矩陣:

#include "armadillo.h"

arma::mat A = { {1, 3, 5},
                {2, 4, 6},
                {7, 8, 9} };

arma::mat B = A.t();

我們想將這兩個矩陣(或任何其他變量)傳遞給 Python。 一旦這些矩陣在 Python 中,我們就會執行一個使用這兩個矩陣的腳本。

我一直在尋找一段時間,但我找到的只是將 C++ 代碼嵌入到 python 中的信息。

有人可以幫我解決這個問題嗎? 是否可以執行此實施? 我應該尋找什么?

我認為你想要的是將 python 嵌入到 C++ 中。 這是文檔的鏈接: https : //docs.python.org/3.6/extending/embedding.html#embedding-python-in-another-application

您需要從 c++ 代碼執行 python 函數。 嵌入 python 允許它。 將矩陣作為參數傳遞並不是那么簡單。 您需要將它們轉換為 numpy 數組,然后將它們作為參數傳遞給您的 Python 函數。

另一種簡單但不是很好的方法是將矩陣保存到文件中,然后將它們作為二進制流從 python 中讀取,然后轉換為矩陣。 在這種情況下,您可以執行外部 python 腳本(類似於此處: 從 c++ 代碼運行 python 腳本並在 c++ 中使用 pythons 輸出)。

暫無
暫無

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

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