TOP

Ubuntu 16.04下C++调用Python3.5程序
2019-03-02 20:08:06 】 浏览:623次 本网站的内容取自网络,仅供学习参考之用,绝无侵犯任何人知识产权之意。如有侵犯请您及时与本人取得联系,万分感谢。
Tags:Ubuntu 16.04 调用 Python3.5 程序

Python程序


#call.py
import sys
def call():
    print("hello world")
if __name__ = '__main__':
    call()


C++代码


#include <iostream>
#include <boost/python.hpp>
using namespace std;
using namespace boost::python;
int main()
{
 Py_Initialize();
 if (!Py_IsInitialize())
 {
  cout << 'Fail 1' << endl;
  return -1;
 }
 Pyrun_SimpleString("import sys")
 int argc = 1;
 wchar_t argv[1]; //python2使用char,与python3有区别
 argv[0] = L"/home/tyl/code/call.py";
 PySys_setArgv(argc,argv);
 if (PyRun_SimpleString("exec(open('/home/tyl/code/call.py').read())"))
 {
  cout << "Fail 2" <<endl;
  return -1;
 }
 Py_Finalize();
 return 0;
}


CMakeLists文件


cmake_minimum_required(VERSION 2.6)
project(test)
set (CMAKE_BUILD_TYPE Debug)


find_package(Boost COMPONENTS thread serialization python REQUIRED)


include_directories(${Boost_INCLUDE_DIR}
            /usr/include/python3.5)     
add_executable(test main.cpp)
target_link_libraries(test
        ${Boost_LIBRARIES}
        /usr/lib/x86_64-linux-gnu/libboost_python-py35.so
        /usr/lib/x86_64-linux-gnu/libstdc++.so.6
        /usr/lib/x86_64-linux-gnu/libpython3.5m.so
        )
install(TARGETS test RUNTIME DESTINATION bin)


请关注公众号获取更多资料


Ubuntu 16.04下C++调用Python3.5程序 https://www.cppentry.com/bencandy.php?fid=54&id=211249

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++调用Python中的Tensorflow模型 下一篇ROS Kinetic下编译安装ORB_SLAM2

评论

验 证 码:
表  情:
内  容: