VS2010 下配置使用 Python3.5
阿新 • • 發佈:2019-01-07
綜合了網路上幾篇文章,成功配置。
由於我的VS沒有x64的環境選項,所以我參考瞭如下文章進行配置:
配置完成後就是常規的將Python的include與lib新增到工程引用了,然後在這裡我出現了一個Error,提示沒有python3.5_d.lib。因為我並不想完整編譯Python,選擇了直接安裝其Win下的安裝包,所以我的解決方案為以下兩點:
- 更改pyconfig.h中關於_DEBUG程式碼塊的程式碼
- 通過新增預編譯資訊
第一種解決方案:
#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;
}
文章資料來自於網路,轉侵刪。