c++调用python脚本
2018-02-01 10:32
357 查看
之前是纯python脚本在跑一些功能,就当时在用matlab做图像处理,做做实验还可以。上到项目还是要用C++,
但python里面的一些功能代码又不想再用C++代码再实现一遍,故用C++来调用一些python脚本。长久之计还是
完全用C++代码实现吧。
下面介绍下相关配置吧:
1.用VS2013新建一个控制台程序,选择Release X64配置
2.sample1.cpp里代码如下:
(1)Configuration Properties属性里的VC++ Directories里为:
C:\Program Files\Anaconda3\Scripts
C:\Program Files\Anaconda3\include
(2)Lineker里的General的Additional Library Directories里为:(为python的路径,我装的是Anaconda3(64-bit))
C:\Program Files\Anaconda3\libs
C:\Program Files\Anaconda3\Lib
(3)Lineker里的Input的Additional Dependencies里为:
python35.lib
4.编译该工程,转到生成的Release文件夹下
在该文件夹下新建一份TensorflowTest.py文件,代码如下:
5.重新生成该c++工程
会在Release目录下生成一个log.txt文件和保存的bmp文件
但python里面的一些功能代码又不想再用C++代码再实现一遍,故用C++来调用一些python脚本。长久之计还是
完全用C++代码实现吧。
下面介绍下相关配置吧:
1.用VS2013新建一个控制台程序,选择Release X64配置
2.sample1.cpp里代码如下:
// sample1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "python.h" #include <iostream> #include <Windows.h> int _tmain(int argc, _TCHAR* argv[]) { char msg[256] = "11111 "; PyObject * pModule = NULL; PyObject * pFunc = NULL; PyObject * pArg = NULL; // 初始化python环境 Py_Initialize(); // 导入python脚本 pModule = PyImport_ImportModule("TensorflowTest"); if (!pModule) { OutputDebugStringA("1 cannot open module!"); Py_Finalize(); return 1; } // 获得TensorFlow函数指针 pFunc = PyObject_GetAttrString(pModule, "HelloTensor"); if (!pFunc) { OutputDebugStringA("2 cannot find function!"); Py_Finalize(); return 1; } // 调用TensorFlow函数 pArg = Py_BuildValue("(s)", "this is a call from c++"); if (pModule != NULL) { PyEval_CallObject(pFunc, pArg); } Py_Finalize(); OutputDebugStringA("3 exit!"); return 0; }3.工程路径配置
(1)Configuration Properties属性里的VC++ Directories里为:
C:\Program Files\Anaconda3\Scripts
C:\Program Files\Anaconda3\include
(2)Lineker里的General的Additional Library Directories里为:(为python的路径,我装的是Anaconda3(64-bit))
C:\Program Files\Anaconda3\libs
C:\Program Files\Anaconda3\Lib
(3)Lineker里的Input的Additional Dependencies里为:
python35.lib
4.编译该工程,转到生成的Release文件夹下
在该文件夹下新建一份TensorflowTest.py文件,代码如下:
#!/usr/bin/python3.5 # -*- coding: utf-8 -*- import sys import tensorflow as tf import os import cv2 import numpy as np import sys import pickle from optparse import OptionParser import time from skimage.io import imsave, imread, imshow def HelloTensor(s): print("me") data = imread("D:\\4.png") imsave("4.bmp",data) stdout_backup = sys.stdout log_file = open("log.txt", "w") sys.stdout = log_file print(s) hello = tf.constant('Hello, Ten1sorFlow!') sess = tf.Session() print(sess.run(hello)) log_file.close() sys.stdout = stdout_backup该python中import了一些库,如果你没有安装pip安装这些库,可以注释掉这些代码。同时拷贝python35.dll到该目录下。
5.重新生成该c++工程
会在Release目录下生成一个log.txt文件和保存的bmp文件
相关文章推荐
- C++中调用Python脚本
- C,C++代码中调用python脚本
- c++调用python脚本
- [VS2013]C++中调用Python脚本提示 error LNK2001: 无法解析的外部符号__imp_PyString_FromString等错误的解决方案
- 用C++调用PYTHON脚本
- C++调用Python脚本碰到的问题及解决方法【更新中】
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号
- c++调用python脚本
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- C++ 调用Python3 脚本中无法引入内建模块的问题 解决方法
- C++调用Python脚本初识
- 使用C++调用Python脚本的步骤和问题解决办法
- C++调用python脚本
- 讲述C++中调用Python脚本
- 讲述C++中调用Python脚本
- VS2015下C++调用Python脚本
- C++中调用Python脚本(转载)
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- C++嵌套调用 用Python 脚本写的 基于Gurobi 的解数学模型的经验记录