Сохранение конфигурации установки пакета Python для последующего использования - PullRequest
0 голосов
/ 16 ноября 2018

У меня довольно сложный setup.py процесс компиляции Cython, где я рассматриваю несколько вещей, таких как поддержка openMP и наличие или отсутствие заголовков Си. В частности, FFTW - это библиотека, которая вычисляет FFT и работает быстрее, чем FFT numpy, поэтому, если доступно fftw3.h, я компилирую свой модуль против этого, в противном случае я возвращаюсь к numpy.

Я бы хотел вспомнить, как был скомпилирован пакет, т.е. поддерживал ли компилятор openMP и какая библиотека FFT использовалась. Вся эта информация доступна при запуске setup.py, но не позднее и может быть полезна, например. если пользователь хотел бы запустить функцию с использованием нескольких ядер, но openMP не использовался во время компиляции, все будет работать на одном ядре. Запоминание этой информации позволило бы мне показать приятную ошибку.

Я не уверен, что лучший способ сделать это. Есть много вариантов, таких как написание файла с данными и последующее чтение при необходимости, но есть ли какой-нибудь стандартный способ сделать это? По сути, я пытаюсь подражать numpy's show_config, но я не уверен, каким будет лучший способ сделать это.

1 Ответ

0 голосов
/ 16 ноября 2018

Я не пытался сделать это, но мое предложение должно имитировать поведение config.h, которое можно увидеть при построении на основе autotools: ваш setup.py генерирует набор определений, которые вы либо вызываете через командную строку, либо используете через сгенерированный заголовок файл - и затем вы можете использовать это, чтобы кормить, например, скомпилированная функция расширения для возврата оценочной структуры данных. Но что бы вы ни делали: я не нашел для этого стандартизированного способа.

...