Windows系统版本:
环境配置:
1、安装python
2、安装Visual Studio ,打开Vs创建test项目。
3、点击项目选择属性,点击VC++目录,将Python中的include路径和libs路径加入其中,点击应用,如下图所示
4、选择链接器中的输入
将安装libs中的python38.lib的路径复制粘贴加入上面的附件依赖中
5、编译c++项目,然后将python脚本加入到c++项目中,并且要与test.exe在同一级目录
到此配置环境也就结束了,接下来测试一下
环境测试
对于c++,我们在test项目中创建源文件test.cpp
test.cpp
#include //调用python脚本必修导入该头文件
#include
int main() {
//使用python之前,要调用Py_Initialize();这个函数进行初始化
Py_Initialize();
//导入环境变量
PyRun_SimpleString("import sys");
//python脚本路径
PyRun_SimpleString("sys.path.append('./')"); //放在cpp的同一路径下
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
PyObject* pClass = NULL;
PyObject* pInstance = NULL;
// PyImport_ImportModule函数载入python脚本,参数为为python脚本名称,因为是//模块化的导入,所以当代码处于运行期的时候就会生成一个.pyc文件,这样的话和直//接使用.pyc文件有同样的效果,下面做了两种方式运行效率的比较
pModule = PyImport_ImportModule("mytest");//此出的mytest是python脚本的名称
//调用Py_Finalize,这个根Py_Initialize相对应的。
Py_Finalize();
return 0;
}
mytest.py,记得该文件一定要与test.exe放在同一目录
mytest.py
import numpy as np
#导入numpy模块
import elkai
#导入elkai模型,该模型是用于求TSP问题LKH算法的一个轮子
Array=np.array([[0,2,1],[2,0,3],[1,3,0]])
#创建一个距离的二维矩阵
print(elkai.solve_int_matrix(Array))
#输出该模型计算后的最优TSP结果
编译生成test.exe文件。
开始调试
调试成功,结果如下:
Linux系统版本:
1、安装python
2、安装python相应库,如:pip3 install numpy;和pip3 install elkai
3、创建项目文件夹,添加mytest.py和test.cpp
4、编译程序: g++ test.cpp -I /usr/include/python3.6m -L /usr/lib/x86_64-linux-gnu -lpython3.6m
也可以选择写CMakeLists.txt来编译程序,在项目文件多的时候更加实用
cmake_minimum_required( VERSION 2.8 )
project ( code_test )
set( CMAKE_CXX_COMPILER "g++" )
set( CMAKE_BUILD_TYPE "Debug" )
set( CMAKE_CXX_FLAGS "-std=c++11 -O0" )
include_directories(
/usr/include/python3.6m
)
link_directories(
/usr/lib/x86_64-linux-gnu
)
add_executable( run_test test.cpp )
target_link_libraries(run_test
libpython3.6m.so
)
如果选择写Makefile,一定要加入相应python库的路径
5、执行程序:./a.out
如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)