自定义 Python 构建 - time.so:未定义符号:PyExc_ValueError
Custom Python build - time.so: undefined symbol: PyExc_ValueError
全部,
我正在为嵌入式系统开发一个新的 C++ 项目。系统的一部分是一些遗留的 Python 代码,我们也需要连接这些代码。我已经使用 Python 提供的各种 PyImport_ImportModule 函数等为 Python 接口制作了 C++ 原型,并在我的主机系统(Ubuntu 64 位 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 中,我们没有启用任何特殊选项或使用任何非标准标志(可能需要一些额外的设置)?
这通常发生在:
- 需要清理构建或
- 正在 linked 错误的 libpython 库。我建议从尝试干净构建开始,然后仔细检查你的 linking 标志(确保你构建 Python-2.7 和 link 到 Python-2.7 而不是说 Python-3.* 等)。
另外,请看这个讨论,它看起来像一个非常相似的问题:https://www.panda3d.org/forums/viewtopic.php?t=13222
编辑:这也可能是相关的:undefined symbol: PyExc_ImportError when embedding Python in C
全部,
我正在为嵌入式系统开发一个新的 C++ 项目。系统的一部分是一些遗留的 Python 代码,我们也需要连接这些代码。我已经使用 Python 提供的各种 PyImport_ImportModule 函数等为 Python 接口制作了 C++ 原型,并在我的主机系统(Ubuntu 64 位 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 中,我们没有启用任何特殊选项或使用任何非标准标志(可能需要一些额外的设置)?
这通常发生在:
- 需要清理构建或
- 正在 linked 错误的 libpython 库。我建议从尝试干净构建开始,然后仔细检查你的 linking 标志(确保你构建 Python-2.7 和 link 到 Python-2.7 而不是说 Python-3.* 等)。
另外,请看这个讨论,它看起来像一个非常相似的问题:https://www.panda3d.org/forums/viewtopic.php?t=13222
编辑:这也可能是相关的:undefined symbol: PyExc_ImportError when embedding Python in C