2 jr lu JR_lu 于 2017.01.06 08:51 提问

C++调用python脚本(test.py这个脚本中import numpy)程序崩溃
c++

我想在c++中调用python的一个脚本,这个脚本中我只是import了一个numpy就报错了,而如果是简单的脚本(没有import第三方库)就不会出错,我已经把:
INCLUDEPATH += C:/Python27/include/
LIBS += C:/Python27/libs/python27.lib
添加进去了,

  pyrun_simplestring("import sys");
  pyrun_simplestring("import numpy");
  pyrun_simplestring("sys.path.append('c:\python27\lib\site-packages\')");
  pyerr_print();
  pyobject * pmodule = null;
  pyobject * pfunc = null;
  pmodule =pyimport_importmodule("test_my");      //test001:python文件名
  pfunc= pyobject_getattrstring(pmodule, "testdict"); //add:python文件中的函数名
  pyobject *pargs = pytuple_new(1);
  pyobject *pdict = pydict_new();        //创建字典类型变量
  pydict_setitemstring(pdict, "name", py_buildvalue("s", "wangyao"));     //往字典类型变量中填充数据
  pydict_setitemstring(pdict, "age", py_buildvalue("i", 25));             //往字典类型变量中填充数据
  pytuple_setitem(pargs, 0, pdict);                 //0---序号  将字典类型变量添加到参数元组中

  pyobject *preturn = null;
  preturn = pyeval_callobject(pfunc, pargs);      //调用函数
  int size = pydict_size(preturn);
  cout << "返回字典的大小为: " << size << endl;
  pyobject *pnewage = pydict_getitemstring(preturn, "age");
  int newage;
  pyarg_parse(pnewage, "i", &newage);
  cout << "true age: " << newage << endl;

  py_finalize();

这是python的脚本:

 #import numpy as np
def HelloWorld():  
    print "Hello World"  
def add(a, b):
    #tmp=np.random.randint(10,88)   
    return a+b  
def TestDict(dict):  
    print dict  
    dict["Age"] = 17  
    return dict  
class Person:  
    def greet(self, greetStr):  
        print greetStr  
#print add(5,7)  
#a = raw_input("Enter To Continue...")

老是报错,但如果我把import numpy去掉就没问题,求大神解答,困扰好久了~~~

5个回答

dabocaiqq
dabocaiqq   2017.01.14 23:15
caopiaonuan7046
caopiaonuan7046   2017.07.13 14:58

楼主 我也遇到这个问题 你解决了么。。。。求交流 很急

DoronLee
DoronLee   2017.10.07 17:17

很急,我也遇到这个问题,不知道怎么解决,是C++和Python的版本不兼容吗?好晕~~

baiduwen3
baiduwen3   2017.11.06 13:50

我也是同样的问题,import numpy 或者 tensorflow都不行。楼主解决了吗?

adrian0420
adrian0420   2017.11.13 15:19

我也一样的问题,最后怎么解决的?版本问题还是其它?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
import numpy 和 from numpy import * 的区别
两种方式都是引入numpy库中的所有函数、函数、对象、变量等,两者的区别在于调用其中内容时不同.     以掉用numpy中的random模块为例,第一种方式要用numpy.random,第二种方式只用random即可。     但是请特别注意:pep标准推荐使用第一种方式,请在日常使用中尽量使用第一种方法,就比如numpy中random  标准库中也有random,但是两者的功能是不
Windows C++中嵌入Python脚本含import numpy等库出现问题
C++调用Python脚本问题在C++中调用Python脚本如果使用第三方库,如import numpy/ PIL/ scipy/ opencv/ PIL/ matplotlib等这些库文件时可能就会出现如下图所示错误: 在VS中使用64位debug版,而且是debug版有问题,而release版没有问题(后来发现的release版可以正常运行)如果release版也有类似问题,那么我的方法估计不会
import numpy 和 from numpy import*的区别
import numpy,如果使用numpy的属性都需要在前面加上numpy from numpy import *,则不需要加入numpy 后者不建议使用,如果下次引用和numpy里的函数一样的情况,就会出现命名冲突。
import numpy 问题
http://vdisk.weibo.com/s/Dp2sFMRNcCGh https://my.oschina.net/HIJAY/blog/484759  import numpy 出现下面问题: >>> import numpy Traceback (most recent call last):   File "", line 1, in   File "D:\P
from numpy import * import operator和import numpy as np
在做knn算法时,看到unmpy的不同引用方法,不知道其区别,后来查了资料后知道了两者区别,简单记录一下摘自 https://zhidao.baidu.com/question/877431035722473172.html(1)import numpy,如果你使用numpy的属性都需要在前面加上numpy(2)from numpy import * ,则不需要加入numpy后者不建议使用,如果你...
python pandas numpy matplotlib 常用方法及函数 转载▼ import numpy as np import pandas as pd import matplotlib
python pandas numpy matplotlib 常用方法及函数  转载▼ import numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy----------------------- arr = np.array([1,2,3], dtype
python导入模块的三种方法,例子: import numpy和from numpy import * (import matplotlib 和 from matplotlib import *)
python导入模块有如下几种写法:以matplotlib为例 (跟numpy是一样的) 1,import matplotlib #整个导入matplotlib 2 , from matplotlib import * #导入matplotlib下的所有函数 3 , import matplotlib as pl #这个导入matplotlib,并将matplotlib导入为pl 以...
Python: import numpy 报错
实际上是numpy未成功安装 pip install numpy 报错  pkg_resources.DistributionNotFound: The 'pip==1.5.4' distribution was not found 安装 pip 报错 pkg_resources.DistributionNotFound: distribute==0.6.10 安装 distribu
Java调用Python脚本,以及报错解决
极少数时候,我们会碰到类似这样的问题:与 A 同学合作写代码, A 同学只会写 Python,而不熟悉 Java,而你只会写 Java 并不擅长 Python,并且发现难以用 Java 来重写对方的代码,这时,就不得不想方设法“调用对方的代码”。下面举一些简单的小例子,借此说明:如何在 Java 中调用 Python 代码。 什么是 Jython?  Jython(原 JPython
Test.py文件解析
from tcaxPy import * def tcaxPy_Init(): print('Tips: you can initialize your global variables here.') print('This function will be executed once if you set `\'') print(GetHelp()) #初始化函数