VISWESWARAN1998 Ответов: 1

Встраивание Python в C++


Доброе Утро Сэр,

Я уже ссылался на эту статью, Встраивание программы Python в код C / C++ [^] Я проследил за учебником и успешно внедрил Python в свой код.

PyRun_SimpleString("print('Hello World from Embedded Python!!!')");


s используется для выполнения одной строки кода Python, но как я могу запустить несколько строк кода в Python? Я также попытался запустить Python из файла, но файл также должен был быть там для запуска исполняемого файла. Cry|: ((я не хочу файл вместе с моим исполняемым файлом, я искал в google sir, но не нашел никаких результатов.

Я здесь в замешательстве, я не знаю, что делать doConfused|: confused:

Благодарю вас сэр за ваше время

Что я уже пробовал:

1. попытался связаться с автором статьи, дождался ответа. месяц и он не реагирует.

2. попробовал погуглить, но не нашел ничего подходящего, и я все еще жду ответа автора.

Любая помощь очень ценится

Спасибо, сэр, что уделили мне время!

Richard MacCutchan

Вы можете делать только то, что предусмотрено в статье. Если вам нужно что-то дополнительное, вам нужно будет изменить предоставленный код.

[no name]

Сэр, я не понимаю вашего комментария, Я код работает без каких-либо проблем, но файл python должен присутствовать там, где находится исполняемый файл, исполняемый файл не будет работать, если файл python там не присутствует, есть ли какой-нибудь способ заставить исполняемый файл работать, фактически не раскрывая код? Спасибо сэр за ваше время извините мой английский

Richard MacCutchan

Нет, файл python должен быть доступен исполняемой программе. В качестве альтернативы вы можете хранить его в зашифрованном виде в ресурсе вашей программы. Затем, когда это необходимо, вы расшифровываете его во временный файл и запускаете его из расшифрованной копии.

[no name]

Благодарю вас за ваше любезное разрешение

1 Ответов

Рейтинг:
8

Albert Holguin

Ну, вы можете просто превратить файл python в двоичный файл и скомпилировать/связать его в двоичный файл вашей программы. Во время выполнения Возьмите скомпилированный двоичный текст (который на данный момент должен быть каким-то const char*) и скормите его Python в виде строки.

Однако такой подход заставляет ваше приложение компилироваться каждый раз, когда вам нужны какие-либо изменения Python... что в первую очередь теряет большую часть желательности использования Python. Другими словами... в этот момент зачем вообще использовать Python?


[no name]

Спасибо вам, сэр, за ваше доброе решение, у Python есть хорошие и простые сетевые библиотеки, так почему же я спросил. Спасибо Вам за ваше решение

Albert Holguin

Вы знаете, что C++ также имеет довольно хорошие / простые сетевые библиотеки. Черт возьми, есть несколько библиотек, которые имеют интерфейсы/привязки как для C++, так и для Python (т. е. ZeroMQ[^]).

[no name]

О, спасибо вам, сэр, за вашу любезную помощь