Это длинный пост, поэтому я помещаю краткое резюме с вопросом вверху.
Lion достаточно долго отсутствовал, чтобы я наконец смог установить большинство библиотек Python и т. Д. Мне нужно использовать двоичные установки.Я застрял, когда дело доходит до libsndfile.Каков наилучший способ установки libsndfile, и, если он имеет отношение, остальная часть этого материала?
Продолжайте читать, если вам нужно больше подробностей ... Я работаю над программой, которая использует следующее, разрабатывается подИзначально OSX 10.7.3 и нужно было иметь возможность создавать кроссплатформенность на WinXp и Win7:
Python 2.7.2
Numpy 1.6.1
SciPy 0.10.1
matplotlib 1.1.0
SciPy.scikits.samplerate
SciPy.scikits.audiolab
PortMidi
pyinstaller
У меня все это установлено на моей машине с OSX, и все работает под отладчиком.Когда я пытаюсь собрать с помощью pyinstaller, у меня возникают проблемы, потому что мои установки представляют собой историческую мешанину бинарных установок, сборок из исходного кода, easy_install, pip и HomeBrew.С парой файлов, извлеченных из бесполезной установки MacPorts.Некоторые библиотеки были установлены, когда я запускал бета-версию Lion, когда было сложно заставить некоторые вещи работать под Lion.
Я думаю, что Lion достаточно долго отсутствовал, чтобы можно было сделать более чистую установкуи это должно упростить дальнейшие действия, особенно с pyinstaller.Я создал новую виртуальную машину Lion и сделал следующее:
1. Installed Python 2.7.2 Mac OS X 64-bit/32-bit x86-64/i386 from binaries.
2. Installed numpy-1.6.1-py2.7-python.org-macosx10.6 from binaries.
3. Installed scipy-0.10.1-py2.7-python.org-macosx10.6 from binaries.
4. Installed matplotlib-1.1.0-py2.7-python.org-macosx10.6 from binaries.
5. Installed Xcode 4.3.1 and downloaded command tools
6. Installed libsamplerate-0.1.8 from source; required by scikits.samplerate
Пока что все прошло хорошо, хотя я не уверен насчет архитектуры i386 и x86_64 для libsamplerate;Возможно, мне придется вернуться и установить его один раз для каждой архитектуры, а затем создать универсальный двоичный файл.
Далее идет libsndfile, который требуется для scikits.audiolab.Это проблема, так как я нахожу постоянно расширяющуюся сеть зависимостей:
libiconv
ncurses
expat
gettext
glib
pkg-config
libFlac
libogg
libvorgis
Gettext был проблемой, так как ошибка stpncpy, которую я получал, была опубликована в нескольких местах, но я нашел патчи, которые на самом делеисправить проблему было немного утомительно.
Даже после очевидного построения всех перечисленных зависимостей libsndfile по-прежнему не будет работать без ошибок, и я застрял.
Глядя на количество времени, которое я потратил на то, чтобы не запустить libsndfile, я начинаю сомневаться в базовом подходе.Кажется, у меня нет возможности выяснить все ошибки и внести соответствующие изменения за конечное время.
Я возвращаюсь назад по пути менеджера пакетов ... easy_install to pip и HomeBrew;но некоторые вещи, кажется, обрабатываются только MacPorts, но в целом MacPorts винты с Python способами, которые я не могу принять, и pyinstaller ненавидит MacPorts.Если я делаю это, я могу или не могу заставить вещи работать снова, но даже если я это сделаю, я обеспокоен тем, что не буду знать, какие части на самом деле требовались, или смогу поддерживать среду разработки в течение долгого времени.