gpt4 book ai didi

c++ - c++程序如何设置python代码段可以运行的环境?

转载 作者:太空狗 更新时间:2023-10-29 20:30:54 28 4
gpt4 key购买 nike

我在我的主目录中创建了两个文件 embed.py useEmbed.cpp

嵌入.py

import os

print os.getcwd()

useEmbed.cpp

  #include <iostream>
#include "Python.h"
using namespace std;

int main()
{
Py_Initialize();
PyRun_SimpleFile("embed.py");
Py_Finalize();

return 0;
}

命令 g++ useEmbed.cpp -o useEmbed 返回 Python.h not found,下一步我应该做什么来制作 .cpp 文件编译成功并返回正确答案?感谢有关如何设置环境以使此测试正常的提示。

谢谢!

更新:感谢 David 和 Alexander 提供的提示。在我的 Fedora Linux 中安装软件包 python-devel 后问题已解决。

最佳答案

在 Linux 上,您可以使用 python-config获取编译器标志 (python-config --cflags) 和链接器标志 (python-config --ldflags)。

例如:

#> python-config --cflags<br/>
-I/usr/include/python2.5 -I/usr/include/python2.5 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes

#> python-config --ldflags<br/>
-L/usr/lib/python2.5/config -lpthread -ldl -lutil -lm -lpython2.5

要编译您的程序,您可以运行 g++ useEmbed.cpp -o embed "cflags""ldflags":

#> g++ useEmbed.cpp -o embed -I/usr/include/python2.5 -I/usr/include/python2.5 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -L/usr/lib/python2.5/config -lpthread -ldl -lutil -lm -lpython2.5

我不得不稍微更改 useEmbed.cpp:


#include "Python.h"
#include <iostream>

using namespace std;

int main()
{
Py_Initialize();
FILE *file = fopen("embed.py","r+");
PyRun_SimpleFile(file,"embed.py");
Py_Finalize();
fclose(file);

return 0;
}

关于c++ - c++程序如何设置python代码段可以运行的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450928/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com