繁体   English   中英

从 C++ 程序运行 python 程序?

[英]Running a python program from a C++ program?

我一直在 python 中使用 Selenium,我真的很想让现有的 C++ 程序运行我的 python 代码。

基本上,我的 python 代码只是找到一个网站,然后下载文件,然后我的 C++ 程序想要打开该文件并对其进行一系列操作。 如果我有一个 myPythonCode.py 文件和我的其他 C++ 文件(header.h、main.cpp、otherFunctions.cpp...),我将如何从我的 C++ 程序运行 python 代码?

此外,我的两个程序都是控制台程序,我希望用户在运行该程序时能够获得不间断的体验(例如,如果用户想在运行 C++ 程序时下载文件,则终端不必关闭,或打开一个不同的窗口来启动 python 程序)。 对此的任何帮助将不胜感激!

它是特定于操作系统的, C++11标准没有为此定义任何函数(除了system(3) ,它在 C99 中, std::system在 C++11 中)。 在 Linux(和其他POSIX系统)上,阅读Advanced Linux Programming并考虑使用systempopen(3) ,或者更可能是像fork(2)execve(2)pipe(2)这样的低级syscalls (2) , dup2(2)等等.... 你可能需要一些IPC并且你可能需要在一个多路复用系统调用周围有一些事件循环,比如poll(2)

你可以使用一些 C++ 框架,比如QtPoco (两者都有一个进程抽象并且可以在多个操作系统上使用,甚至在微软的专有操作系统上)

如果你希望你的 C++ 程序在 Linux 上有一个终端界面,可以考虑ncurses和/或readline

顺便说一句,存在几个用于HTTP 的C 或 C++ 库,例如用于 HTTP 客户端的libcurl和用于 HTTP 服务器端的libonion 因此,您可能会避免使用 Python 程序并将下载合并到您的 C++ 应用程序中。

查看允许在 C++ 上运行 python 并在 python 中使用你的 C++ 的 boost 库。 https://www.boost.org/doc/libs/1_49_0/libs/python/doc/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM