У меня следующая проблема. Мне нужно распространять нашу собственную версию Python с магией. Для этого необходимо выполнить следующий процесс:
- Я создаю интерпретатор Python (на Redhat Linux)
- установить его где-нибудь
- tar.gz все это
- когда пришло время создать пакет пользователя, распакуйте tar.gz в каталог, который станет пакетом пользователя
- tar.gz каталог пользовательских пакетов
- разместите tar.gz в сети
Это метод, который я должен использовать. Хорошо плохо? Я не знаю, у меня мало опыта в качестве упаковщика, и в любом случае я не могу предложить изменения. Так было всегда.
Оказывается, что когда пользователь распаковывает этот tar.gz в suse и пытается запустить python setuptools (который был установлен вместе с python), модуль hashlib вызывает исключение. Я обнаружил, что при создании python на redhat скрипт настройки python находит библиотеку openssl, которая, в свою очередь, заставляет пропустить сборку shamodule.c, md5.c и т. Д. И компилирует hashmodule.c для подключения к библиотека openssl. очевидно, что openssl 0.9.7 для suse и 0.9.8 для redhat несколько отличаются, это означает, что по какой-то причине модуль _hashlib при импорте в suse вызывает ошибку импорта, в результате чего hashlib пытается импортировать _md5, _sha, _sha256, которых там нет, потому что на redhat не было причин их компилировать (так как openssl там был очень хорош).
Кто-нибудь знает, как решить эту проблему. Как я уже сказал, мой опыт работы с упаковщиком - это минимум, поэтому любые подсказки и предложения приветствуются, и я постараюсь развернуть их настолько, насколько позволит наше наследие.