针对特定版本的Python编译Python模块

时间:2018-12-06 21:39:13

标签: python opencv ubuntu

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文件路径,以便它知道在哪里可以找到编译后的代码?或者,如果我将所有错误都解决了,如何正确编译此代码以使其在我的系统上运行?我一直在阅读有关环境变量和系统路径的信息,但我认为我对它的理解还不够,以至于不会仅仅对计算机造成破坏。

1 个答案:

答案 0 :(得分:0)

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

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

-DPYBIND11_PYTHON_VERSION=3.5

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