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

标签 linux compiler-errors python-2.x python-module

对 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

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

最佳答案

老实说,我宁愿为 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 上运行(也有自动化工具可以帮助您)。

关于linux - Python 构建完成,但未找到构建这些模块的必要位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60949404/

相关文章:

linux - CMake:使用 MinGW 交叉编译 linux-to-windows 没有找到一些系统头文件

javascript - 我怎样才能让它工作。我尝试授予 sudo 权限

linux - RSYNC 需要 ssh 目录或文件才能成功

C++ Visual Studio 2010,实现动态堆栈时编译错误 C3867

python - 如何在Python中从文本文件传递输入参数?

python - UnicodeEncodeError :'charmap' 与 'Ö' ,'Ç' 等

c++ - 如何在 C++ 中检查操作系统是 Windows 还是 Debian?

c - 在 for 循环内声明变量; c2000编译器出现错误

用于将 D3 js v3 迁移到 v4 的 Javascript 编译

python-2.x - 在 pexpect 中同时使用 expect() 和 interact()