正在从C ++程序运行python程序吗?

问题描述 投票:0回答:2

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

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

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

python c++ terminal
2个回答
0
投票

它是特定于操作系统的,C++11标准未为此定义任何功能(C99中的system(3)和C ++ 11中的std::system除外)。在Linux(和其他POSIX系统)上,阅读Advanced Linux Programming并考虑使用systempopen(3),或更可能使用较低级的syscalls(2),例如fork(2)execve(2)pipe(2)dup2(2),等等...。您可能需要一些IPC,并且可能需要在多路复用系统调用周围放置一些event loop,例如poll(2)

您可以使用某些C ++框架,例如QtPoco(都具有流程抽象并且可以在多个操作系统上使用,甚至可以在Microsoft的专有操作系统上使用)

如果您希望您的C ++程序在Linux上具有终端接口,请考虑ncurses和/或readline

BTW,存在几个HTTP的C或C ++库,例如libcurl用于HTTP客户端,libonion用于HTTP服务器。因此,您可以避免使用Python程序,并将下载内容合并到C ++应用程序中。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.