cython_bbox.so:未定义的符号:_Py_ZeroStruct

时间:2017-06-24 13:47:37

标签: python python-3.x tensorflow cntk

我尝试执行所有这些步骤,因为我想在linux上使用不同版本的python 3.5来运行此示例中的代码https://docs.microsoft.com/en-us/cognitive-toolkit/Object-Detection-using-Fast-R-CNN

如果您需要不同的版本,可以按照以下步骤进行编译:

git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
cd $FRCN_ROOT/lib
make
python setup.py build_ext --inplace.
copy the generated cython_bbox and cython_nms binaries from 
$FRCN_ROOT/lib/utils to $CNTK_ROOT/Examples/Image/Detection/FastRCNN/fastRCNN/utils
**Error**
Traceback (most recent call last):
  File "C1_DrawBboxesOnImages.py", line 10, in <module>
    from cntk_helpers import *
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/cntk_helpers.py", line 13, in <module>
    from fastRCNN.nms import nms as nmsPython
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/__init__.py", line 7, in <module>
    from .imdb import imdb
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/imdb.py", line 16, in <module>
    from .utils.cython_bbox import bbox_overlaps
ImportError: /home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/utils/cython_bbox.so: undefined symbol: _Py_ZeroStruct

请任何人都可以帮助我。是什么意思

cython_bbox.so: undefined symbol: _Py_ZeroStruct 

以及如何解决这个问题。

3 个答案:

答案 0 :(得分:4)

当Python模块中的版本不匹配时,此错误消息是典型的。它可能像cython_bbox.so一样被编译并链接到Python 2.7并且CNTK是针对Python 3.5编译的。很难确切地说出原因是什么,但是您可以尝试在与您的CNTK版本匹配的python环境中执行make,看看是否有效。

答案 1 :(得分:0)

尝试使用python3进行编译。

Linux中的默认python版本可能是2.x

答案 2 :(得分:0)

这是因为python版本不匹配。默认情况下,它是使用python 2.7编译的。

编辑make.sh文件以与python3兼容并再次编译。

例如,

python setup.py更改为python3 setup.py

这为我解决了这个问题。