Я управляю проектом с открытым исходным кодом ( Remix , исходный код доступен там), написанным на python. Мы просим пользователей запустить python setup.py install для установки программного обеспечения. Недавно мы добавили скомпилированный пакет C ++ (порт SoundTouch - перейдите к trunk / externals в исходном коде, чтобы увидеть его.) Мы бы хотели, чтобы файл setup.py, который устанавливает базовые библиотеки Remix, также устанавливал библиотеку pysoundtouch14.
Однако мы не хотим, чтобы пользователи имели в своей системе набор инструментов gcc или msvc. Мы предварительно скомпилировали двоичные файлы для распространенных платформ (linux-i386, windows, mac 10.5 и 10.6), перейдите в trunk / externals / pysoundtouch14 / build, чтобы увидеть их. Я надеялся, что пользователь, у которого не установлены gcc или msvc, может просто запустить файл setup.py для pysoundtouch14, и он обнаружит наличие наших предварительно собранных двоичных файлов и просто скопирует их в нужное место (/Library/Python/2.5/site-packages Например.) Но этого не происходит. Например, в новой системе 10.5 файл setup.py жалуется на то, что gcc не устанавливается, хотя .so, который требуется установить, уже встроен в папку build /.
Итак, у меня есть два прямых вопроса:
- Как я могу получить файл setup.py для автоматической "установки" предварительно собранных файлов .so и .pyd в нужное место в зависимости от платформы без необходимости сборки системы?
- Как один файл setup.py (наш основной файл setup.py) также может запустить setup.py другого включенного пакета (pysoundtouch14's setup.py?)