Python сборка завершена, но необходимые биты для сборки этих модулей не найдены - PullRequest
1 голос
/ 31 марта 2020

Официальная поддержка python2 закончилась через несколько месяцев go, но мне нужна она для запуска одной из моих программ, а также она была удалена из репозитория ubuntu 20.04. Поэтому я хотел скомпилировать и установить python2 себе. Но на заключительных этапах make all (фактически в setup.py build), он печатает следующую ошибку:

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _sqlite3           _ssl            
_tkinter           bsddb185           bz2             
dbm                dl                 gdbm            
imageop            readline           sunaudiodev     
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Мне не нужны некоторые модули, такие как readline или _tkinter но мне нужно _ssl. Невозможно установить это через pip. Я установил libssl-dev из репозитория, но затем произошла следующая ошибка после повторной сборки:

Failed to build these modules:
_hashlib           _ssl

Любая помощь приветствуется. Спасибо.

1 Ответ

1 голос
/ 31 марта 2020

Если честно, я бы предпочел использовать docker изображение для Python2, чем пытаться его скомпилировать; для некоторых это может быть излишним, но для меня это более простой и чистый способ.

Например, если у вас есть папка project, содержащая как минимум project.py и requirements.txt, вы можете использовать следующие Dockerfile (в той же папке, что и project):

FROM python:2.7-slim-buster

COPY /project /app
RUN pip install --no-cache-dir -r /app/requirements.txt

WORKDIR /app

CMD [ "python", "project.py" ]

Создайте его с помощью docker build -t project .

Запустите его с помощью docker run -it --rm --name project_run project

В зависимости от сложности вашего приложения вы также можете попытаться обновить его, чтобы он работал на Python 3 (для этого есть и автоматизированные инструменты).

...