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
包
答
构建.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
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