C++ 調用 python tensorflow

參考鏈接:https://blog.csdn.net/zichen_ziqi/article/details/79068656

前言:主要針對,windows系統,很多人使用anconda安裝的tensorflow不再base下,使用下面的配置,vs可以使用安裝了tensorflow的python環境。(困擾點,在網上沒找到相關解決方案,自己嘗試,覺得行得通,果然最後能行通)

1、新建一個文件夾,取名爲test_python(作爲工程目錄)
2、重點!通過anconda 安裝tensorflow,會將tensorflow 創建在一個虛擬的python環境,這裏將虛環境下include文件夾、libs文件夾都拷貝到test_python35文件夾中(通過anconda prompt 需要先激活虛python環境 這裏直接將該python環境加入到工程目錄)

在這裏插入圖片描述3、在libs目錄中複製python35.dll並重命名爲python35_d.dll
在這裏插入圖片描述
3、打開VS2015,新建一個項目face,選好路徑爲test_python
在這裏插入圖片描述4、新建一個main函數如下展示圖所示,接下來需要配置環境變量


#include "stdafx.h"  
#include <stdlib.h>
#include <iostream>  

#include  "Python.h"

using namespace std;

void Hello() 
{
	   Py_SetPythonHome(L"D:/ANACONDA/envs/tensorflow");
		//初始化Python環境  很重要,必要
		Py_Initialize();

		PyRun_SimpleString("import sys");//很重要,之前model加載失敗
		PyRun_SimpleString("sys.path.append('./')");
		//導入模塊  
		PyObject* pModule = PyImport_ImportModule("classifier1");//不要加.py

		if (!pModule)
		{
			cout << "Python get module failed." << endl;
			return;
			
		}

		cout << "Python get module succeed." << endl;

		PyObject * pFunc = NULL;
		pFunc = PyObject_GetAttrString(pModule, "recognize_face");
		PyEval_CallObject(pFunc, NULL);
		Py_Finalize();
}





int main(int argc) {
	Hello();
	system("pause");
	return 0;
}

(1)添加頭文件
在這裏插入圖片描述(2)添加庫文件
在這裏插入圖片描述(3)代碼中配置python3的環境變量

	   Py_SetPythonHome(L"D:/ANACONDA/envs/tensorflow");

5、生成解決方案,來生成的Debug目錄,在該目錄下添加python35.dll(帶有tensorflow的安裝環境)、調用的python原函數(classifier1.py與facenet.py,在classifier.py內使用了facenet.py中的函數),如下圖所示

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述再次執行,終於成了!!!!
在這裏插入圖片描述

發佈了86 篇原創文章 · 獲贊 9 · 訪問量 9458
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章