1. 程式人生 > >VS2010 下配置使用 Python3.5

VS2010 下配置使用 Python3.5

綜合了網路上幾篇文章,成功配置。
由於我的VS沒有x64的環境選項,所以我參考瞭如下文章進行配置:

配置完成後就是常規的將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;
}

文章資料來自於網路,轉侵刪。