В обычных условиях внешние модули Python, такие как scipy и numpy, при установке компилируются в общие объекты (часть написана на C).Когда python вызывает import scipy, он динамически загружает эти общие объекты.Сейчас я работаю на платформе, которая не поддерживает функцию динамической загрузки.В результате я должен статически связать эти модули с python.Мой текущий подход состоит в том, чтобы скомпилировать весь исходный код scipy / numpy с помощью python и вызывать функцию инициализации модуля при инициализации python.
Py_initializeEx(){
...
//init scipy modules statically
//below are scipy modules init functions
init_comb();
init_cython_special();
...
}
Однако это приносит мне еще одну проблему.Я обнаружил во многих функциях инициализации модуля Python, особенно когда они автоматически генерируются из Cython, они содержат коды для импорта его родительских пакетов.Например, cython_special () вызывает импорт scipy, но когда он вызывается, инициализация scipy еще не завершена.
Мой вопрос: есть ли простой способ, чтобы я мог статически связать эти модули?Каковы ваши предложения по решению этой проблемы?Спасибо.