为特定版本的Python编译Python模块

2024-04-24 05:47:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不得不在ubuntu16.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运行我的代码时,我得到一个错误:

undefined symbol: _Py_ZeroStruct.

我试着用默认路径(我的系统是python2.7)和零结构错误dissapears编译它,但是由于代码是为python3编写的,它不能按预期工作(importlib的get import errors)。所以我的问题是如何将Python或Ubuntu指向.local文件路径,以便它知道在哪里可以找到编译的代码?或者,如果我完全错了,如何正确地编译这些代码以在我的系统上工作?我一直在读关于环境变量和系统路径的书,但我不认为我理解得足够透彻,以至于最终不会对我的电脑造成破坏。你知道吗


Tags: 模块install文件代码路径home图书馆local
1条回答
网友
1楼 · 发布于 2024-04-24 05:47:20

PyDIP CMake脚本在构建时应该更喜欢python3而不是python2,您可以尝试拉取最新的master,看看这是否会给您带来更好的运气。你知道吗

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

-DPYBIND11_PYTHON_VERSION=3.5

到CMake命令,以指定以哪个版本的Python为目标。你知道吗

相关问题 更多 >