Установите предварительно скомпилированное расширение Python с distutils

1

Как я могу указать произвольный набор файлов (не обязательно.py файлов), чтобы они были распределены и установлены так же, как и обычные модули Python?

Некоторые предпосылки

Я использую distutils для распространения и установки моей библиотеки Python. Один из модулей этой библиотеки импортирует стороннее расширение Python под названием bpy.so (это модуль Blender). Для расширения bpy.so требуются и другие файлы. Я хочу распространять и устанавливать bpy.so и дополнительные файлы с моей библиотекой.

Один из способов сделать это - указать все дополнительные файлы как data_files для setup(). Однако я не знаю, как надежно указать тот же установочный каталог, который используется для моих чистых модулей python (например,/usr/local/lib/python3.2/dist-packages). Я могу распространять дополнительные файлы, создавая файл MANIFEST.in (см. Этот вопрос), но я также хочу установить файлы.

  • 0
    Документы помогают?
  • 0
    Это документы для setuptools, о которых я раньше не знал. (См. Ответ Mac ниже.) Я использовал distutils.
Теги:
distutils

1 ответ

0
Лучший ответ

Я бы предложил использовать setuptools поверх distutils.

Это хороший справочный документ, чтобы начать работу с ним. Преимущество использования setuptools в том, что у него есть несколько приятных функций, таких как возможность включения всех файлов в данный каталог (пакет) автоматически или в соответствии с фильтрами. Это раздел вышеупомянутого документа, посвященный этому конкретному аспекту.

НТН!

PS: текущая ситуация/ограничения distutils являются источником многих жалоб большинства пользователей. Кажется, новое поколение библиотеки уже на пути!

  • 0
    Отличное предложение. Похоже, это именно то, что я хочу. Спасибо!
  • 0
    package_data был перенесен в distutils в Python 2.4. Вам не нужно переключаться на setuptools только для них. (Есть хорошие и плохие вещи при использовании setuptools.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню