Как установить PySide v0.3.1 на Mac OS X? - PullRequest
2 голосов
/ 21 мая 2010

Я пытаюсь установить PySide v0.3.1 в Mac OS X, для разработки Qt в python.

В качестве предварительного условия я установил CMake и Qt 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, я не могу импортировать 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.

Ответы [ 3 ]

2 голосов
/ 22 мая 2010

У меня нет опыта работы с MacOS, но если предположить, что он похож на любой * nix, поехали:

О скрипте: в нем не пропущены некоторые команды "make, make install"? Версия, которую вы опубликовали, просто запустила cmake для configure build. Также для тестирования я установил -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 работал нормально.

1 голос
/ 25 августа 2011

Прошло уже пару месяцев с тех пор, как этот вопрос изначально задавался, но я наткнулся на официальное репозиторий PySide для сборки:

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

README описывает процесс сборки:

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

Похоже, что с моим единственным предупреждением это происходит довольно автоматически, так как он опускает libxslt с помощью brew - я не могу убедительно сказать, поставляется ли libxslt со Snow Leopard или нет - ноэто определенно в Lion по умолчанию.

Похоже, единственный шаг установки вручную - установка cmake в вашей системе.

1 голос
/ 12 июня 2010

В ответ на оригинальный пост ...

То, что сделал бы ваш сценарий, - это сгенерировал необходимые файлы сборки для построения привязок pyside, но он не сделал бы саму сборку. Чтобы выполнить сборку самостоятельно, вам нужно выполнить make, а затем make install в каждом из каталогов сборки.


Я получил большую часть пути через запуск pyside 0.3.1 и работу на Mac (SnowLeopard 10.6.3), но я завис на последнем этапе компиляции. Мой сценарий немного менее прост, чем ваш, но по сути похож.

Я столкнулся и решил ряд проблем, чтобы добраться до финальной компиляции, и надеюсь, что смогу помочь некоторым людям вместе с разработанными мной решениями / обходными решениями. Кроме того, возможно, все вместе мы сможем выяснить, как пройти последний этап.

Я собираюсь включить используемый мной скрипт сборки и журнал изменений, которые мне пришлось внести в дистрибутив, чтобы он заработал. Но сначала, шаг, на котором я застрял ... в основном, я не понимаю сообщение об ошибке, и запрошенный файл, кажется, не существует ...

Надеюсь, это поможет продвинуть поддержку Mac ...

Я не могу опубликовать это напрямую из-за переполнения стека, так как оно слишком длинное, поэтому вот ссылка на публикацию в списке рассылки на pyside.

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

...