zoukankan      html  css  js  c++  java
  • 在 C 代码中嵌入 Python 语句或使用 Python 模块 (Visual Studio 2013 环境设置)

    1) 新建一个 内嵌 Python 语句的 C 代码,

    // This is a test for check insert the Python statements or module in C.
    
    #include "Python.h"
    
    int main(void)
    {
        // execute python statements
        Py_Initialize();
        PyRun_SimpleString("import os");
        PyRun_SimpleString("print os.getcwd()");
        Py_Finalize();
    
        return 0;
    }

    2) Visual Studio 2013 环境设置

      右键单击工程,选择 Properties,

      

      添加的 include 路径,

      

      复制重命名C盘 python27.lib 为 python27_d.lib

      

      Linker 的 Input 添加上述 lib 的路径,

      

      因为当前使用 64 位 Python,故修改编译平台为 x64,

      

      continue,

      

      之后编译即可。

    3) C 中嵌入使用 Python 模块的语句,

      当前工程目录下建立一个 hello.py,

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    def sayHi():
        print 'Hi, How are you?'

      C 文件为,

    // This is a test for check insert the Python statements or module in C.
    
    #include "Python.h"
    
    int main(void)
    {
        // execute python module
        Py_Initialize();
        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('.')");
        PyObject * pModule = NULL;
        PyObject * pFunc = NULL;
        pModule = PyImport_ImportModule("hello");
        pFunc = PyObject_GetAttrString(pModule, "sayHi");
        PyEval_CallObject(pFunc, NULL);
        Py_Finalize();
    
        return 0;
    }

      

      之后编译即可。

      一般情况下,用 C 扩展 Python 的情况居多,即把 C 代码包装成 Python 接口,在主 Python 程序中使用,可以提升程序运行效率或是为了利用已有的C代码。

      而将 Python 嵌入 C 一般是为了利用 Python 中现成的模块或方法,比较少用。

      更多内容请阅读 Python 官方 Help 文档。

      

    完。

  • 相关阅读:
    修改MFC标题栏上的图标
    【转】子窗口刷新父窗口的问题
    水晶报表添加引用
    【转】MetadataType的使用,MVC的Model层数据验证
    poj 1556 The Doors 线段相交判断+最短路
    poj 1269 Intersecting Lines 求直线交点 判断直线平行共线
    string 函数操作
    poj 1066 Treasure Hunt 线段相交判断
    poj 1410 Intersection 线段相交判断
    poj 3347 Kadj Squares 扩大数据化整数
  • 原文地址:https://www.cnblogs.com/gaowengang/p/8529230.html
Copyright © 2011-2022 走看看