Spixmaster528
Cadet 1st Year
- Registriert
- März 2019
- Beiträge
- 13
Szenario
Ich habe ein C++ Projekt names "EmbedPython" erstellt mit Visual Studio. Im Allgemeinen möchte ich eine Python-API in das Programm einbetten mit pybind11.
Mein angelegtes Projekt
Das ist die API: https://github.com/ping/instagram_private_api
Dort habe ich die Python-API (instagram_private_api, instagram_web_api) hingepackt:
Anhang anzeigen 3833
Ich habe ein eigens erstelltes Modul calc mit der Methode add zum Testen ebenfalls in diesen Ordner gepackt. Da klappt das Importieren des Moduls.
Hier mein Code für die gewollte API
Problem
error_already_set wird geworfen. Was mache ich falsch?
Hier ist nebenbei die entsprechend Dokumentation dazu. Ich werde daraus nicht schlauer.
Zusätzlich
Mein kurzes Verständnis zu Python. Ein Modul ist doch einfach eine .py samt ihren Inhaltes, die wie eine Klasse zu verstehen ist. Also Modul calc mit Methode add ruft man in einem anderen Modul mit
Wo ist denn bitte dann instagram_private_api.py in der Python API?!
Über mich
Ich programmiere hauptsächlich in C++. Python mache ich erst seit ein paar Tagen und nur weil ich die oben genannte API brauche.
Ich habe ein C++ Projekt names "EmbedPython" erstellt mit Visual Studio. Im Allgemeinen möchte ich eine Python-API in das Programm einbetten mit pybind11.
Mein angelegtes Projekt
Das ist die API: https://github.com/ping/instagram_private_api
Dort habe ich die Python-API (instagram_private_api, instagram_web_api) hingepackt:
Ich habe ein eigens erstelltes Modul calc mit der Methode add zum Testen ebenfalls in diesen Ordner gepackt. Da klappt das Importieren des Moduls.
Code:
py::object calc = py::module::import("calc");
Hier mein Code für die gewollte API
Code:
#include <pybind11/embed.h> // everything needed for embedding
#include <iostream>
namespace py = pybind11;
int main()
{
py::scoped_interpreter guard{}; // start the interpreter and keep it alive
py::object pyObj = py::module::import("instagram_private_api").attr("Client").attr("ClientCompatPatch");
int i;
std::cin >> i;
}
Problem
error_already_set wird geworfen. Was mache ich falsch?
Hier ist nebenbei die entsprechend Dokumentation dazu. Ich werde daraus nicht schlauer.
Zusätzlich
Mein kurzes Verständnis zu Python. Ein Modul ist doch einfach eine .py samt ihren Inhaltes, die wie eine Klasse zu verstehen ist. Also Modul calc mit Methode add ruft man in einem anderen Modul mit
Code:
import calc
calc.add()
Wo ist denn bitte dann instagram_private_api.py in der Python API?!
Über mich
Ich programmiere hauptsächlich in C++. Python mache ich erst seit ein paar Tagen und nur weil ich die oben genannte API brauche.