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

Ubuntu16.04 OMNeT++配置 C++调用Python和TensorFlow,第1张

Ubuntu16.04 OMNeT++配置 C++调用Python和TensorFlow Ubuntu系统 Omnet中C++调用Python的相关环境配置

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

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

然后在终端打开omnet:

omnetpp

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

    在Libraries里添加python3.7m

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


添加完成,Apply and Close。

    完成上述配置后,打开终端进行以下 *** 作:
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项目,还要做以下改动。

    对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官网按照版本查询。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5718449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存