python - wxPython Phoenix 源代码构建在 build_py 步骤上失败

原文 标签 python python-3.x build wxpython

概括
我正在尝试从 Travis-CI(Ubuntu 12.04)上的源代码构建 wxPython Phoenix,但在 sip_corewxHeaderCtrlEvent.cpp 期间出现“没有名为 'api_get_reference' 的成员”错误。
细节
以下是我正在遵循的流程 [ source ]。我已经分离出每个 build.py 步骤来帮助我调试(以便 Travis-CI 日志折叠输出)。
注意:由于某种原因,build/build.py sip无法正确下载 sip。这就是为什么我有步骤 1 和 2。

  • 深度学习、提取和构建 sip从源头。
  • 创建指向安装目录
  • 的环境变量“SIP”
  • DL wxPython Phoenix 源 tarball、解压、cd 到解压目录
  • python ./build.py --build_dir=./bld dox
  • python ./build.py --build_dir=./bld touch
  • python ./build.py --build_dir=./bld etg --nodoc
  • sudo -E python ./build.py --build_dir=./bld sip我发现这一步我需要 sudo。 -E选项是保留环境变量。
  • python ./build.py --build_dir=./bld build_wx

  • 到这里为止,一切似乎都运行良好。但是当我运行时
  • python ./build.py --build_dir=./bld build_py

  • 我在 sip_corewxHeaderCtrlEvent.cpp 期间收到“没有名为 'api_get_reference' 的成员”错误
    有谁知道如何解决这一问题?我错过了一个包裹吗?有没有可以设置跳过的配置项?我知道这个构建版本是有效的,因为它适用于 wxPython's BuildBot .
    系统和版本信息:
    OS:              Ubuntu 12.04 LTS (precise)
    Linux Version:   2.6.32-042stab090.5
    Python:          3.4.2 x86_64
    wxPython:        3.0.3.dev1820+49a8884 (Phoenix)
    sip:             4.16.9
    
    错误文本
    以下是完整的错误文本,以 [188/712] 开头:
    [188/712] cxx: sip/cpp/sip_corewxHeaderCtrlEvent.cpp -> build/waf/3.4/sip/cpp/sip_corewxHeaderCtrlEvent.cpp.3.o
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_arrowColour(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:113:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelBitmap(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:184:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelColour(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:223:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelFont(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:265:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelText(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:304:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_selectionColour(void*, PyObject*, PyObject*)’:
    ../../../sip/cpp/sip_corewxHeaderButtonParams.cpp:346:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’
    Waf: Leaving directory `/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4'
    Build failed
    
     -> task in '_core' failed (exit status 1): 
        {task 140029216390280: cxx sip_corewxHeaderButtonParams.cpp -> sip_corewxHeaderButtonParams.cpp.3.o}
    ['/usr/bin/g++', '-fPIC', '-pthread', '-pthread', '-pthread', '-I/usr/include/gtk-2.0', '-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include', '-I/usr/include/atk-1.0', '-I/usr/include/cairo', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0/', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/pixman-1', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-UNDEBUG', '-g', '-pthread', '-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bld/lib/wx/include/gtk2-unicode-3.0', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/ext/wxWidgets/include', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4/sip/siplib', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/sip/siplib', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4/src', '-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/src', '-I/opt/python/3.4.2/include/python3.4m', '-DPYTHONDIR="/usr/local/lib/python3.4/site-packages"', '-DPYTHONARCHDIR="/usr/local/lib/python3.4/site-packages"', '-DHAVE_PYTHON_H=1', '-DHAVE_WX=1', '-DHAVE_WXADV=1', '-DHAVE_WXSTC=1', '-DHAVE_WXHTML=1', '-DHAVE_WXGL=1', '-DHAVE_WXWEBVIEW=1', '-DHAVE_WXXML=1', '-DHAVE_WXXRC=1', '-DHAVE_WXRICHTEXT=1', '-D_FILE_OFFSET_BITS=64', '-DWXUSINGDLL', '-D__WXGTK__', '../../../sip/cpp/sip_corewxHeaderButtonParams.cpp', '-c', '-o', 'sip/cpp/sip_corewxHeaderButtonParams.cpp.3.o']
    Command '"/home/travis/virtualenv/python3.4.2/bin/python" /home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bin/waf-1.7.15-p1 --wx_config=/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bld/wx-config --python="/home/travis/virtualenv/python3.4.2/bin/python" --out=build/waf/3.4 configure build ' failed with exit code 1.
    
    Finished command: build_py (2m3.778s)
    
    The command "python ./build.py --build_dir=./bld build_py" failed and exited with 1 during .
    
    Your build has been stopped.
    
    你可以看到整个 Travis 构建日志 here (https://travis-ci.org/dougthor42/wafer_map/builds/72217442)。

    最佳答案

    问题是构建过程正在查找 SIP 头文件 (sip.h) 的捆绑副本,该副本与您下载和安装的版本不匹配。要解决此问题,您可以编辑文件 wscript(位于 Phoenix 发行版的根目录中)。更改此行:

        conf.env.INCLUDES_WXPY = ['sip/siplib', 'src']
    


        conf.env.INCLUDES_WXPY = ['src']
    

    或者,您可以下载并安装似乎是捆绑版本的 SIP 版本 4.16.7。

    关于python - wxPython Phoenix 源代码构建在 build_py 步骤上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31594104/

    相关文章:

    python - 使用推导式拆分和展平字符串和无值列表

    python - 根据 Pandas 中其他列内容对列进行操作

    Android gradle 插件 v3.3.0 -> 使用 proguard 时找不到 R$raw

    ios - xcode 6在编译最后一个源文件时保持静止

    python - 使用共享数组在 Python 中进行快速 FFT 的内存对齐

    python - FailedPreconditionError : GetNext() failed after loading a Tensorflow Saved_Model

    运行多行语句时 Atom 中的 Python 语法错误

    python - IPython笔记本不会显示图

    python - Pandas :在数据框中的第二行之后插入一个空行

    iphone - 谁能告诉错误以下是什么以及如何解决这个问题(文件是通用的(3 片)但不包含 armv7s 片)?