linux - 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.
我不关心某些模块,例如readline
or_tkinter
但我需要。_ssl
不可能通过pip
.
我libssl-dev
从存储库安装,但在重新构建后出现以下错误:
Failed to build these modules:
_hashlib _ssl
任何帮助表示赞赏。
谢谢。
解决方案
老实说,我宁愿使用 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 上运行(也有自动化工具可以帮助您)。