Ubuntu16.04 OMNeT++配置 C++调用Python和TensorFlow

Ubuntu系统 Omnet中C++调用Python的相关环境配置

参考https://blog.csdn.net/Honiyo/article/details/120651711。
如果Ubuntu中Python目录在usr/lib下,则按照上述链接中的指示操作。但是如果想使用Anaconda来管理Python环境,情况会复杂一些,具体操作如下。

  1. 打开omnet,注意一定要在终端先激活所需的Python环境:
conda activate python37

然后在终端打开omnet:

omnetpp
  1. 新建一个C++或Omnet项目(或在现有项目上操作),右键项目——>Propertise——>C/C++ General——>Paths and Symbols,添加Python头文件

    在includes下的GNU C++中添加路径/home/xxx/anaconda3/envs/python37/include/python3.7m

  2. 在Libraries里添加python3.7m

    Python版本按照自己的改动

  3. Library 中加入/home/hty/anaconda3/envs/python37/lib

在这里插入图片描述
添加完成,Apply and Close。

  1. 完成上述配置后,打开终端进行以下操作:
sudo find / -name "libpython3.7m.so

搜索会找到anaconda目录下.so文件的地址,类似

/home/hty/anaconda3/envs/python37/lib/libpython3.7m.so

终端中进行一个软链接的操作:

powershell ln -s /home/hty/anaconda3/envs/python37/lib/libpython3.7m.so /usr/lib/libpython3.7m.so

如果项目是C++项目,那么在omnet中这个项目已经可以自由调用Python了。 但如果项目是omnet项目,还要做以下改动。

  1. 对omnet的make进行配置
    右键项目 -> Properties -> omnet++ -> makemake -> src: makemake -> 右上角options
    在这里插入图片描述
    link -> -l option中填入python3.7m
    在这里插入图片描述
    至此,omnet项目可以调用Python了。

OMNeT++中调用TensorFlow

OMNeT调用tensorflow时候,会出现以下警告和信息,提示找不到cuda:
如果调用没有终止,则可以忽略警告

调用终止在.py文件中的import tensorflow。

问题出现的原因:正常python里面import tensorflow时会从启动参数里抓变量(argc,argv),然后C++里调用python就没有继承这些变量。import tf的时候访问这些变量就出错了。
解决方法:手动把C启动时候的变量传进去。
在这里插入图片描述
问题解决。
在这里插入图片描述
此外,关于C++调用Python的具体操作,可以参考https://blog.csdn.net/dcx_dcx/article/details/104388718
注意Python各版本对应的调用函数略有不同,可以去Python官网按照版本查询。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值