Pyside build.sh无法解析文件:../data/typesystem.xml

问题描述:

我下面这个教程http://lynxline.com/superhybrids-part-2-now-qt-pyside/运行build.sh当我得到以下输出:Pyside build.sh无法解析文件:../data/typesystem.xml

Fatal error: line=3, column=62, message=Failed to parse: 'typesystem_core.xml' 

Cannot parse file: ../data/typesystem.xmlWARNING: Failure to find: pyhybrid/pyhybrid_module_wrapper.cpp 
WARNING: Failure to find: pyhybrid/mainwindow_wrapper.cpp 

在build.sh以下目录列出:

QTGUI_INC=/Library/Frameworks/QtGui.framework/Versions/4/Headers 
QTCORE_INC=/Library/Frameworks/QtCore.framework/Versions/4/Headers 
QTTYPESYSTEM=/usr/local/share/PySide/typesystems 

但我没有这些目录。 Pyside,Qt和Python都已安装。我在哪里可以找到类型系统,QtGui.framework/Versions/4/Headers/QtCore.framework/Versions/4/Headers?

我不知道你使用的是什么操作系统,但假设你使用Linux(Ubuntu的)时,包括头应安装(assuing Pyside和Qt使用APT包管理器安装)

QTGUI_INC=/usr/include/qt4/QtGui 
QTCORE_INC=/usr/include/qt4/QtGui 

或者如果是从源完成:

QTGUI_INC=/usr/local/include/qt4/QtGui 
QTCORE_INC=/usr/local/include/qt4/QtGui 

对于QTTYPESYSTEM目录,您需要安装libpyside-dev

+0

Sanks,这正是我所需要的。但我有新问题。在build.sh \t找不到C++类! \t找到了循环依赖关系!图形可以在/tmp/qt_temp.T15161找到 \t 完成后,860个报警(0已知问题) 警告:如果不找到:pyhybrid/pyhybrid_module_wrapper.cpp 警告:如果不找到:pyhybrid/mainwindow_wrapper.cpp 我不认为这是正常的“860警告”。同名 类型'QPyTextObject'是在类型系统中指定的,但未定义。这可能会导致编译错误 – user1113159 2011-12-23 23:16:30

构建.sh

#!/usr/bin/env sh 

PROJ_DIR=`pwd` 

echo "Building hybrid project." 
echo "Project root: " $PROJ_DIR 

QT4TYPESYSTEM_DIR=`pkg-config --variable=typesystemdir pyside` 
QT4HEADER_DIRS=`pkg-config --variable=includedir QtCore`:`pkg-config --variable=includedir QtCore`/..:`pkg-config --variable=includedir QtGui` 

function step_app { 
    cd hybrid 
    qmake 
    make clean 
    make 
    cd $PROJ_DIR 
} 

function step_generate { 
    cd hybridpy 
    shiboken --include-paths=$PROJ_DIR/hybrid:$QT4HEADER_DIRS:/usr/include --typesystem-paths=$PROJ_DIR/data:$QT4TYPESYSTEM_DIR --output-directory=. --debug-level=medium $PROJ_DIR/data/global.h $PROJ_DIR/data/typesystem.xml 
    cd $PROJ_DIR 
} 

function step_wrap { 
    cd hybridpy 
    qmake 
    make clean 
    make 
    cd $PROJ_DIR 
} 


echo "Qt typesystem dir: $QT4TYPESYSTEM_DIR" 
echo "Qt headers dir: $QT4HEADER_DIRS" 

step_app 
step_generate 
step_wrap