2

RI 不得不在 Ubuntu 16.04 上为 Python 手动编译一个库/模块并且遇到了问题。图书馆在这里:

DIPlib 3 - PyDIP

它是 OpenCV 的大小量词。问题是在运行命令时:

cmake /home/cooper/diplib-master/ -DCMAKE_INSTALL_PREFIX=$HOME/dip -DPYDIP_INSTALL_PATH=$(python3 -m site --user-site)

如说明中所述,它在路径中构建文件 /home/cooper/.local/lib/python3.5/site-packages/PyDIP/PyDIP_bin.so。当我使用 运行我的代码python3 my_program.py时,出现错误:

未定义符号:_Py_ZeroStruct。

我尝试使用默认路径(我的系统为 python 2.7)编译它并且零结构错误消失,但由于代码是为 Python 3 编写的,它不能按预期工作(获取 importlib 的导入错误)。所以我的问题是如何将 Python 或 Ubuntu 指向 .local 文件路径,以便它知道在哪里可以找到编译后的代码?或者,如果我做错了,我该如何正确编译这段代码以在我的系统上工作?我一直在阅读有关环境变量和系统路径的信息,但我认为我对它的理解不够好,以至于最终不会对我的计算机造成严重破坏。

4

1 回答 1

0

PyDIP CMake 脚本在构建时应该更喜欢 Python 3 而不是 Python 2,您可以尝试提取最新版本master,看看这是否会给您带来更好的运气。

如果这不起作用,您可以添加

-DPYBIND11_PYTHON_VERSION=3.5

到 CMake 命令以指定要定位的 Python 版本。

于 2019-01-20T15:45:04.967 回答