Следуя этой рекомендации, я написал собственную библиотеку расширений C для оптимизации части модуля Python через ctypes. Я выбрал ctypes над написанием родной библиотеки CPython, потому что это было быстрее и проще (всего несколько функций со всеми жесткими петлями внутри).
Теперь я попал в ловушку. Если я хочу, чтобы моя работа была легко установлена с помощью distutils с помощью python setup.py install
, тогда distutils должен иметь возможность создавать мою общую библиотеку и устанавливать ее (предположительно в /usr/lib/myproject
). Однако это не модуль расширения Python, и, насколько я могу судить, distutils не могут этого сделать.
Я нашел несколько ссылок на людей других людей с этой проблемой:
- Кто-то на numpy-обсуждение с взломом в 2006 году.
- Кто-то спрашивает о distutils-sig и не получает ответа.
- Кто-то спрашивает в основном списке python и указывает на внутренности существующего проекта.
Я знаю, что я могу сделать что-то родное, а не использовать distutils для разделяемой библиотеки или использовать мою дистрибутивную систему. Меня беспокоит то, что это ограничит удобство использования, поскольку не все смогут легко установить его.
Итак, мой вопрос: каков наилучший способ распространения разделяемой библиотеки с distutils, которая будет использоваться ctypes, но в остальном является OS-native, а не модулем расширения Python?
Не стесняйтесь отвечать одним из вышеперечисленных хаков, если вы можете расширить его и обосновать, почему это лучший способ. Если нет ничего лучше, по крайней мере, вся информация будет находиться в одном месте.