Сборка Python без доморощенных зависимостей с использованием pyenv - PullRequest
1 голос
/ 13 октября 2019

Мне нужно создать распространяемую автономную среду Python с использованием pyenv в macOS.

Проблема, с которой я сталкиваюсь, заключается в том, что существуют зависимости от динамических библиотек. Эти зависимости включают полный путь динамической библиотеки (например, libssl.1.0.0.dylib в /usr/local/opt/). Например, одна из зависимостей модуля Python ssl - lib-dynload/_ssl.cpython-37m-darwin.so, которая ссылается на системную библиотеку libssl.

Я не могу распространять это, потому что пользователи не всегда имеют openssl в одном каталоге с моей машиной сборки,Я не могу контролировать местоположение, где пользователи будут устанавливать мой пакет, потому что он будет в их домашнем каталоге. Таким образом, абсолютные пути прямо сейчас.

Я рассмотрел использование rpath, которое позволяет динамическим библиотекам определять свои зависимости с относительными путями. Похоже, это вызывает проблемы с безопасностью, поэтому я бы предпочел не использовать его.

Возможно ли настроить pyenv для использования статических библиотек, когда это возможно, например, для openssl?

...