2

我正在尝试在 Mac OS X 中安装PySide v0.3.1,以便在 python 中进行 Qt 开发。

作为先决条件,我已经安装了CMakeQt SDK

我浏览了文档并提出了以下安装脚本:

export PYSIDE_BASE_DIR="<my_dir>"

export APIEXTRACTOR_DIR="$PYSIDE_BASE_DIR/apiextractor-0.5.1"
export GENERATORRUNNER_DIR="$PYSIDE_BASE_DIR/generatorrunner-0.4.2"
export SHIBOKEN_DIR="$PYSIDE_BASE_DIR/shiboken-0.3.1"
export PYSIDE_DIR="$PYSIDE_BASE_DIR/pyside-qt4.6+0.3.1"
export PYSIDE_TOOLS_DIR="$PYSIDE_BASE_DIR/pyside-tools-0.1.3"

pushd .

cd $APIEXTRACTOR_DIR
cmake . 

cd $GENERATORRUNNER_DIR
cmake -DApiExtractor_DIR=$APIEXTRACTOR_DIR .

cd $SHIBOKEN_DIR
cmake -DApiExtractor_DIR=$APIEXTRACTOR_DIR -DGeneratorRunner_DIR=$GENERATORRUNNER_DIR .

cd $PYSIDE_DIR
cmake -DShiboken_DIR=$SHIBOKEN_DIR/libshiboken -DGENERATOR=$GENERATORRUNNER_DIR .

cd $PYSIDE_TOOLS_DIR
cmake .

popd

现在,我不知道这个安装脚本是否正常,但显然一切正常。每个组件(apiextractor、generatorrunner、shiboken、pyside-qt 和 pyside-tools)都被编译到自己的目录中。

问题是我不太明白 PySide 是如何进入系统的 python 环境的。事实上,当我启动 python shell 时,我无法导入 PySide:

>>> import PySide
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PySide

注意:我知道安装 PySide - OSX问题,但该问题不再相关,因为它是关于对 Boost 库的特定依赖,但版本 0.3.0 PySide 从基于 Boost 的源代码移动到CPython 一。

4

3 回答 3

2

我没有任何 MacOS 经验,但假设它类似于任何 *nix,让我们开始吧:

关于脚本:是不是缺少一些“make, make install”命令?您发布的版本只是运行 cmake 来配置构建。同样为了测试,我为所有模块设置了 -DCMAKE_INSTALL_PREFIX=。这样,所有东西都安装在同一个地方,只要我为每一个使用相同的安装前缀,CMake 就会为我找到它们。脚本中的目录布局非常复杂,并且混合了构建目录和源目录。

关于查找 PySide:一旦正确编译和安装所有内容,安装“PySide”目录的目录必须在 PYTHONPATH 变量中可用。在下面的示例中,

这是一个简单版本的构建脚本(适用于 Ubuntu):

#!/bin/bash

BUILD_ROOT=/tmp/pyside-build
INSTALL_PREFIX=/tmp/sandbox

function build_module {
    cd $BUILD_ROOT
    echo Cloning project $1 from url $2
    git clone --depth 1 $2 $BUILD_ROOT/$1

    BUILD_DIR=$BUILD_ROOT/$1/build
    mkdir -p $BUILD_DIR
    cd $BUILD_DIR

    echo Configuring $1 build.
    cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX ..

    echo Configured $1. Starting build.
    make LD_LIBRARY_PATH=$INSTALL_PREFIX/lib

    echo Built $1. Installing.
    make install
    echo Successfully built and installed $1
}

rm -rf $BUILD_ROOT
mkdir -p $BUILD_ROOT
build_module apiextractor git://gitorious.org/pyside/apiextractor.git
build_module generatorrunner git://gitorious.org/pyside/generatorrunner.git
build_module shiboken git://gitorious.org/pyside/shiboken.git
build_module pyside-shiboken git://gitorious.org/pyside/pyside-shiboken.git

运行它并等待一段时间(Qt 相当大)。:)

该脚本会将所有包下载到 /tmp/pyside-build,在其自己的“build”目录中构建每个包,并将所有内容安装到 /tmp/sandbox。然后,我只需将 PYTHONPATH 设置为 /tmp/sandbox/lib/python2.6/site-packages 并且 PySide 工作正常。

于 2010-05-22T16:57:29.497 回答
1

在回答原帖...

您的脚本会生成必要的构建文件来构建 pyside 绑定,但它不会自己完成构建。要自己进行构建,您需要执行“make”,然后在每个构建目录中执行“make install”。


通过在 Mac 上启动并运行 pyside 0.3.1(SnowLeopard 10.6.3),我已经完成了大部分工作,但我在最后的编译步骤上挂了。我的脚本没有你的那么简单,但本质上是相似的。

我遇到并解决了许多问题以进行最终编译,并希望我可以帮助一些人以及我设计的解决方案/解决方法。此外,也许我们可以共同弄清楚如何通过最后一步。

我将包含我正在使用的构建脚本,以及我必须在发行版中进行的更改的日志以使其运行。但首先,我坚持的步骤......主要是我不明白错误消息,并且请求的文件似乎不存在......

我希望这将有助于推动对 mac 的支持......

我不能直接在堆栈溢出上发布它,因为它太长了,所以这里是 pyside 上邮件列表上帖子的链接。

http://lists.openbossa.org/pipermail/pyside/2010-June/000812.html

于 2010-06-12T00:10:07.423 回答
1

虽然距离最初提出这个问题已有几个月的时间,但我在以下位置遇到了官方 PySide 构建脚本存储库:

http://qt.gitorious.org/pyside/buildscripts

自述文件涵盖了构建过程:

http://qt.gitorious.org/pyside/buildscripts/blobs/master/README

它似乎是相当自动的,到目前为止我唯一需要注意的是它通过 brew 拉下 libxslt - 我不能权威地说 libxslt 是否与 Snow Leopard 一起提供 - 但默认情况下它肯定在 Lion 中。

似乎唯一的手动安装步骤是将 cmake 放在您的系统上。

于 2011-08-25T08:00:57.127 回答