首页 > 解决方案 > Python 构建完成,但未找到构建这些模块的必要位

问题描述

对 python2 的 官方 支持 几个月 前 就 结束 了 , 但 我 需要 它 来 运行 我 的 一个 程序 , 而且 它 已经 从 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.

我不关心某些模块,例如readlineor_tkinter但我需要。_ssl不可能通过pip.
libssl-dev从存储库安装,但在重新构建后出现以下错误:

Failed to build these modules:
_hashlib           _ssl

任何帮助表示赞赏。
谢谢。

标签: linuxcompiler-errorspython-2.xpython-module

解决方案


老实说,我宁愿使用 Python2 的docker映像,也不愿尝试编译它;对某些人来说可能有点矫枉过正,但对我来说,这是更简单、更干净的方式。

例如,如果您有一个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 上运行(也有自动化工具可以帮助您)。


推荐阅读