Python 构建完成,但未找到构建这些模块的必要位

Posted

技术标签:

【中文标题】Python 构建完成,但未找到构建这些模块的必要位【英文标题】:Python build finished, but the necessary bits to build these modules were not found 【发布时间】:2020-07-11 22:26:08 【问题描述】:

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.

我不关心readline_tkinter 等模块,但我需要_ssl。无法通过pip 安装它。 我从存储库安装了libssl-dev,但是在重新构建之后出现了以下错误:

Failed to build these modules:
_hashlib           _ssl

感谢任何帮助。 谢谢。

【问题讨论】:

我在 Ubuntu 18.0.4 下尝试从源代码编译 python 2.7.18 时遇到了完全相同的问题。有什么解决办法吗? 【参考方案1】:

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

例如,如果您有一个project 文件夹,其中至少包含project.pyrequirements.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 上运行(也有自动化工具可以帮助您)。

【讨论】:

虽然不是模块构建问题的解决方案,但确实是一个不错的选择。谢谢。

以上是关于Python 构建完成,但未找到构建这些模块的必要位的主要内容,如果未能解决你的问题,请参考以下文章

jenkins显示发送邮件成功,但未收到邮件

返回嵌套承诺但未找到响应

Detox 成功构建但未在 Android 模拟器上安装应用程序

如何在所有模块构建完成后执行maven插件

在 Windows 下使用 SCons 构建 boost::python 模块

使用 pysinstaller 构建 python 项目后找不到模块