搜索
您的当前位置:首页正文

vs2015配置c++调用anaconda中的pytorch环境

来源:步旅网
添加pytorch所在python安装目录的include 文件夹目录到项目x属性->VC++目录的包含目录中 例如C:\ProgramData\Anaconda3\include 添加pytorch所在python安装目录的libs文件夹目录到项目x属性->VC++目录的库目录中 例如C:\ProgramData\Anaconda3\libs 添加pytorch所在python安装目录的libs中的python36.lib文件到项目x属性->链接器->附加依赖项中 例如C:\ProgramData\Anaconda3\libs\python36.lib


void main()程序中, 写以下函数//多线程调用为例
{
Py_SetPythonHome(L"C:/ProgramData/Anaconda3/envs/pytorchenv"); //路径更换为装了pytorch的python所在环境目录
	
Py_Initialize();

	
PyRun_SimpleString("import sys;import os;");
pModule = PyImport_ImportModule("xxxxx"); //加载模块xxxxx



PyEval_InitThreads();   //python多线程启用前需要先调用的函数


PyEval_ReleaseThread(PyThreadState_Get()); //python多线程启用前需要先调用的函数


调用子程序test
test()
//


PyGILState_Ensure();//python结束多线程调用前需要调用的函数
Py_DECREF(pModule);
Py_DECREF(pFunc_net);
	
Py_Finalize();

}

void test(){

        class PyGILThreadLock PyThreadLock;//为python程序添加一个线程锁
	PyObject*pArg = NULL;
	PyObject*pFunc_path = NULL;
	char writefile_name[50];

	pFunc_path = PyObject_GetAttrString(pModule, "xxxxx");
	
	pArg = Py_BuildValue("(sfii)", imagePath,thresh, netNum, thread_num);
	
	PyObject *pyValue1 = PyEval_CallObject(pFunc_path, pArg);

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top