Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyside build.sh无法分析文件:../data/typesystem.xml_Python_Qt_Pyqt_Pyside - Fatal编程技术网

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

Python Pyside build.sh无法分析文件:../data/typesystem.xml,python,qt,pyqt,pyside,Python,Qt,Pyqt,Pyside,我正在学习本教程,在运行build.sh时,我将获得以下输出: 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

我正在学习本教程,在运行build.sh时,我将获得以下输出:

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已安装。我在哪里可以找到typesystems,QtGui.framework/Versions/4/Headers/QtCore.framework/Versions/4/Headers?

我不确定您使用的是什么操作系统,但假设您使用的是Linux(Ubuntu),应该在下面安装include头(假设Pyside和Qt是使用APT软件包管理器安装的)

或者,如果从源代码处执行:

QTGUI_INC=/usr/local/include/qt4/QtGui
QTCORE_INC=/usr/local/include/qt4/QtGui
对于
QTTYPESYSTEM
目录,您需要安装
libpyside dev

build.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

桑克斯,这正是我需要的。但我有新问题。在SUBD中,发现没有C++类!找到循环依赖项!图表可在/tmp/qt_temp.T15161中找到,860个警告(0个已知问题)警告:未能找到:pyhybrid/pyhybrid_模块_wrapper.cpp警告:未能找到:pyhybrid/mainwindow_wrapper.cpp我认为这不是正常的“860个警告”。与typesystem中指定的类型“QPyTextObject”相同,但未定义。这可能会导致编译错误
#!/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