所有
我正在为嵌入式系统开发一个新的C ++项目。系统的一部分是我们需要接口的一些遗留Python代码。我已经使用Python提供的各种PyImport_ImportModule函数等原型化了C ++到Python接口,并在我的主机系统(Ubuntu 64 bit 17.04)上进行了测试。
但是,新项目中的构建系统也尝试构建所有依赖项,因此它从源代码构建Python 2.7.13。我看到的问题是用于与主机系统一起使用的接口代码Python不能使用从源Python新构建的。我看到的错误是“time.so:undefined symbol:PyExc_ValueError”,我试图从C ++调用的.py文件确实导入时间作为前几行之一。我检查了time.so存在于自定义构建的Python中,我确实更新了LD_LIBRARY_PATH以包含它,但这没有帮助。在Python的构建结束时,我确实看到了这些警告,所以也许其中一个是相关的?
Python build finished, but the necessary bits to build these modules were not found: _bsddb _sqlite3 _ssl _tkinter bsddb185 bz2 dbm dl gdbm imageop readline sunaudiodev zlib
有人可以建议下一步尝试什么吗?我们没有启用任何特殊选项或在我们从源代码构建的Python中使用任何非标准标志(可能需要一些额外的设置)?
答案 0 :(得分:1)
这通常发生在:
此外,请参阅此讨论,它看起来像一个非常类似的问题:https://www.panda3d.org/forums/viewtopic.php?t=13222
修改:这也可能相关:undefined symbol: PyExc_ImportError when embedding Python in C