Я пытаюсь создать локальную версию python3 (в частности, python3.7, но та же проблема с 3.6.6), но у меня возникают проблемы со связью с некоторыми библиотеками C и/или заголовками (по крайней мере, это то, что я думаю, проблема является).
Я могу собрать python3.7, но столкнулся с проблемами с bzip2 (но я подозреваю, что будут другие системные библиотеки, о которых я не знаю). Это проявляется при попытке импорта различных пакетов/модулей, которые требуют этого, как ошибка импорта:
ModuleNotFoundError: No module named '_bz2'
Из этого вопроса о стеке — Задать вопрос — кажется, что я построил python без правильных заголовков bz2 . Сама сборка Python не дает сбоев.
Конкретный вопрос заключается в том, как создать локальную версию Python с помощью bz2? В более общем плане вопрос заключается в том, как правильно связать системные библиотеки? (поскольку могут быть и другие, с которыми я не сталкивался с ошибками)
С точки зрения того, что я пробовал, я нашел этот (старый) вопрос - Как вы назначаете bz2 альтернативной установке python? и этот более свежий вопрос Компиляция поддержки bz2 в python2 и попробовал несколько вещей на их основе.
Первая проблема, с которой я столкнулся, - это поиск нужных библиотек и т. д. для ссылки (решение в приведенном выше вопросе предлагает установить CFLAGS="-I/path/to/bz2/include"
и LDFLAGS="-L/path/to/bz2/lib"
). Предположительно, они где-то в моей системе (ubuntu 16.04), поскольку системные установки python2.7 и python3.5 не имеют проблем с bzip2.
Я нашел libbz2.so.1
(и некоторые другие) /lib/x86_64-linux-gnu/
, но папки, похоже, не соответствовали шаблону примера/ответа выше. Таким образом, я создал новую локальную версию bz2 (в .bzp
в моей локальной папке), а затем попытался связать ее, когда пытался собрать python3.7, используя следующее:
./configure --prefix=/home/user/.localpython CFLAGS="-I/home/user/.bz2/include" LDFLAGS="-L/home/user/.bz2/lib"
Я также попробовал более общую конфигурацию (которая была основана на Скомпилируйте Python с поддержкой bz2, ссылка на которую приведена во второй статье выше.)
./configure --prefix=/home/user/.python CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
(оба не увенчались успехом)
Любые указатели, советы и т. д. очень ценятся - заранее спасибо!