zoukankan      html  css  js  c++  java
  • Python学习笔记之六:在VS中调用Python

    1,安装配置好Python本身的运行环境,以能在命令行下运行py脚本为准

    2,将Python的根目录下的include文件夹,添加到VS的项目属性->配置属性->C/C++->"附加包含目录"中

    3,将Python的根目录下的libs文件夹,添加到VS的项目属性->配置属性->链接器->"附加库目录"中

    4,在C++项目中添加Python头文件:

    #include <python.h>

    5,添加必要的Python初始化和终止化函数:

    Py_Initialize();
    Py_Finalize();

    6,添加可选的运行目录和脚本文件判断:

    PyRun_SimpleString("import sys"); 
    PyRun_SimpleString("sys.path.append('./Py/')");
    PyRun_SimpleString("import os"); 
    PyRun_SimpleString("print os.path.exists('./Py/pyscript.py')");

    7,在本例中,在$(ProjectDir)中,新建"Py"文件夹,并把"pyscript.py"放置在该文件夹内,"pyscript.py"的内容为:

    def foo():
        print 'do nothing ...'
    
    def main():
        print 'main() haha ~~'

    8,声明Python元素变量:

    PyObject* pModule = NULL;
    PyObject* pFunc = NULL;

    9,载入Python模块,也就是一个py文件:

    pModule = PyImport_ImportModule("pyscript");

    10,载入Python中的函数:

    pFunc = PyObject_GetAttrString(pModule, "main");

    11,调用Python中的函数 :

    PyEval_CallObject(pFunc, NULL);

    另外,还需要注意的是,最好做一些空指针判断,提高程序健壮性:

    if(NULL == pModule)
    {
        printf("载入模块失败!
    ");
        return -1;
    }
  • 相关阅读:
    计算GPS WGS_84 两点的距离
    极路由4_开ssh_刷breed
    aes-256-gcm_python3_php7_golang
    nginx_非标准端口_同端口_http_自动跳转_https
    配置sshd_除了特定ip外_仅密钥登录
    使用scp命令实现服务器之间文件传输
    Java防止重复提
    mysql使用SUBSTRING_INDEX截取部分字符串
    SEO大杀器rendertron安装
    PIC16 bootloader之I2C bootloader
  • 原文地址:https://www.cnblogs.com/zanzan101/p/3836455.html
Copyright © 2011-2022 走看看