C++调用python脚本,当python中又import了其他的模版时,c++报错,怎么解决呢

如题,我在c++里调用了一个简单的python脚本(xxx.py),这个脚本里面没有import其他,运行c++通过,但当py脚本中包含有第三方库时,编译报错,说是找不到... 如题,我在c++里调用了一个简单的python脚本(xxx.py),这个脚本里面没有import其他,运行c++通过,但当py脚本中包含有第三方库时,编译报错,说是找不到xxx.py,

网上找了好久没找到,说是这里添加,求大神指点:
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");

比如我的python的第三方模版在 E:\anaconda3\Lib\site-packages下,该怎么写呢~~~~在线等,很着急
展开
 我来答
百度网友a9172bdf38
2019-10-29
知道答主
回答量:1
采纳率:0%
帮助的人:686
展开全部
PyRun_SimpleString("sys.path.append('./')");是加载运行python文件的地址,看描述不是环境问题。
遇到了一个相似的问题,搞了好久,希望可以帮到相似问题的同学。
现象是:我是在一个完整的项目中调用的python,不是在主进程中,编译只关联了libpython3.6m.so,但是在运行的时候,如果引入了第三方包,就会报找不到第三方包的so,因为第三方包的动态so对你的项目进程是有隔离的,没有被主动加载起来,暂时处理方法是在程序中手动去加载python.so
#include <dlfcn.h>
dlopen("/usr/anaconda3/lib/libpython3.6m.so", RTLD_LAZY | RTLD_GLOBAL);
聚发稿网
2016-08-08 · 知道合伙人生活技巧行家
聚发稿网
知道合伙人生活技巧行家
采纳数:5647 获赞数:29663
聚发稿网创始人,作家,笔名志耘誉松著《机械魔敌》《笑泪恋曲》

向TA提问 私信TA
展开全部
如果你执行father的话,这个时候father是__main__,不是module,所以会执行到father的fromsonimport*,这个时候python会去执行son.py,而son.py一开始就是fromfatherimport*,所以python又去执行father.py,因为father.py的一开始是fromsonimport*,并且因为之前执行过了,所以这个时候son已经在sys.modules里面,所以python不会重新执行son.py,而只是把sys.modules里面的son返回给你,所以当执行到father.py的print(x)的时候,还没有执行son.py里面的x=6,所以会有找不到x的attributeerror。解决的法就是最好根本不要有circularimport。
追问
...没办法呀,我要调用第三方库,比如import numpy这些都会报错
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海螺2.0
2020-08-28
知道答主
回答量:1
采纳率:0%
帮助的人:581
展开全部

初始化前加入你的路径比如我的  Py_SetPythonHome(L"D:\\Anaconda3");


注意路径是‘\\’,一定要注意

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
娱乐猫先知
2019-09-27
知道答主
回答量:1
采纳率:0%
帮助的人:697
展开全部
您好,我也有这个问题想请教,请问您解决了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
553566286
2018-08-07
知道答主
回答量:1
采纳率:0%
帮助的人:841
展开全部
最后怎么解决的能指导一下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式