VS2010 下配置使用 Python3.5

综合了网络上几篇文章,成功配置。
由于我的VS没有x64的环境选项,所以我参考了如下文章进行配置:

http://jingyan.baidu.com/article/6c67b1d69395b72786bb1e44.html
X64环境搭建

Python3.5我选择安装的版本为64位,32位Python可以不用配置这个

配置完成后就是常规的将Python的include与lib添加到工程引用了,然后在这里我出现了一个Error,提示没有python3.5_d.lib。因为我并不想完整编译Python,选择了直接安装其Win下的安装包,所以我的解决方案为以下两点:

  1. 更改pyconfig.h中关于_DEBUG代码块的代码
  2. 通过添加预编译信息

第一种解决方案:

#ifdef MS_COREDLL
#   ifndef Py_BUILD_CORE /* not building the core - must be an ext */
#       if defined(_MSC_VER)
            /* So MSVC users need not specify the .lib file in
            their Makefile (other compilers are generally
            taken care of by distutils.) */
#           if defined(_DEBUG)
#               pragma comment(lib,"python35_d.lib")//将_d去掉即可
#           elif defined(Py_LIMITED_API)
#               pragma comment(lib,"python3.lib")
#           else
#               pragma comment(lib,"python35.lib")
#           endif /* _DEBUG */
#       endif /* _MSC_VER */
#   endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */

第二种方案需要在编译器 预处理器 中添加(属性——配置属性——C/C++——预处理器——预处理器定义)

Py_NO_ENABLE_SHARED

测试代码(代码选自网络):

#include <Python.h>
#include <iostream>
int main()
{
    Py_Initialize();
    if ( !Py_IsInitialized() )
    {
        return -1;
    }
    PyObject * pModule = NULL;//声明变量
    PyObject * pFunc = NULL;// 声明变量
    pModule =PyImport_ImportModule("1");//这里是要调用的文件名
    pFunc= PyObject_GetAttrString(pModule, "OutPut");//这里是要调用的函数名
    PyEval_CallObject(pFunc, NULL);//调用函数
    Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
    return 0;
}

文章资料来自于网络,转侵删。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值