如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
How to use python script in c++ (qt) code? (web-scraping aspect)
我想构建一个允许以实时汇率转换货币的 gui 应用程序。我正在使用MacO和QtCreator(我也有PyCharm和VS Code,但我特别想使用QtCreator来制作我的gui)
首先,我创建了一个 Python 脚本,它可以从 stooq 页面获取实时汇率。我这样做了,因为我想学习网络抓取。 其次,我想为它做一个 qui,我已经知道如何在 C++ 年的 Qt Creator 中使用和编写应用程序。所以,我创建了一个应用程序。第一个想法是将python脚本连接到我的c ++ qt项目。我在互联网上搜索过,但我找到的只是从python脚本创建动态库的想法。我不知道该怎么做,尤其是在QtDesigner中。 所以,我进行了一次头脑风暴,我得出了一个想法。为什么不将我的 python 脚本的输入从 QtWindow 保存到 txt 文件,然后调用 python 脚本,最后将 python 脚本的输出保存到另一个 txt 文件。现在我只需从我的 txt 文件中读取实时汇率。
但我遇到了一个问题。当我调用我的python脚本时,编译器说我没有在脚本中使用包(请求和beautifullsoup)。我检查了是否已在我的计算机上安装了该库(终端 ->"brew 安装请求"、"brew install bs4") 除非我安装了它,否则Qt看不到它。
您是否知道如何说Qt我已经安装了这些东西,或者您能告诉我一种更简单的方法将python脚本添加到c ++ qt代码中,或者您能告诉我一种更简单的Web抓取方法吗?因为,根据我的网络搜索,我没有找到另一种简单的方法来让Gui成为Qt。
(哦,还有一个简单的问题:我如何告诉Qt文件路径?正如你在我的代码中看到的,我不得不过去完整路径,因为Qt没有看到我的文件(我粘贴在源文件夹,编译文件夹和下面的文件夹中)记住 - 我正在使用Mac。我知道在Windows上只有文件名才能工作。
Qt c++中的函数调用Python脚本:
void MainWindow::PythonScriptOpen()
{
std::string filename = "/Users/username/Desktop/programming/Currency_converter/Currency_Converter/currency_converter.py";
std::string command = "python ";
command += filename;
system(command.c_str());
}
错误:
回溯(最近一次调用):文件 "/用户/用户名/桌面/编程/Currency_converter/Currency_Converter/currency_converter.py", 第 3 行,在 导入请求导入错误:没有模块命名请求
您必须按pip(3) install requests
安装requests
- 如何在c++中使用system()来运行包含空格的python脚本
- 如何将真正的字符串从python c-api转换为python脚本
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 使用 Main() 返回值作为 python 脚本的参数
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 从Raspberry Pi / Linux上的Python脚本运行和停止C++程序
- C++ Python 并不总是执行 Python 脚本
- 从C++调用 Python 脚本以持续流式传输数据
- 将数据从 c++ 文件连续发送到 Python 脚本以进行进一步处理
- 错误,在嵌入在C++程序中的 python 脚本中使用 matplotlib 时
- 在 2 个并行运行的脚本(python 和 C++)之间传递消息
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- 困在PyObject_GetAttrString():如何从C++代码中获取Python函数脚本
- Python 脚本到 c .obj 文件
- 从 c++ 运行 python 脚本时出现问题
- C++ :从C++脚本内部触发存储在我机器上的 python 脚本
- 如何在 ubuntu 上的 php 脚本中获取程序(c,c++,java,python,php)的执行时间和内存使用量?
- 从 c++ 中运行 python 脚本,找不到模块
- 参数从 Python 脚本传递到 C++ 使用 boost-python