最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法

 更新時間:2024年08月21日 09:29:38   作者:程序設(shè)計實驗室  
這篇文章主要介紹了使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

前言

之前不是把 DjangoStarter 的 docker 方案重新搞好了嗎

一開始demo部署是使用 SQLite 數(shù)據(jù)庫的,用著沒問題,但很快切換到 PostgreSQL 的時候就遇到問題了…

報錯

docker 啟動之后,app 容器報錯

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 or psycopg module

排錯

一開始我還以為是 psycopg2 庫裝不上,或者是在 python_builder 階段的依賴沒有正確復(fù)制到 final 階段的容器,但后面改了幾個地方,重新試了一下都不行。

接下來使用 python src/manage.py shell 進(jìn)入 shell,測試一下能否導(dǎo)入 psycopg2 庫

>>> import psycopg2
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/project/.venv/lib/python3.11/site-packages/psycopg2/__init__.py", line 51, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: libpq.so.5: cannot open shared object file: No such file or directory

好的,經(jīng)常被 docker 坑的人應(yīng)該已經(jīng)看出問題出在系統(tǒng)環(huán)境上了

不使用 slim 鏡像換成普通的 python 鏡像就正常了…

解決

OK,既然找出問題原因,那么就可以來著手解決了。

使用 psycopg2-binary

最簡單的方法就是將 psycopg2 庫換成 psycopg2-binary,這是一個預(yù)編譯的 psycopg2 包,不需要編譯環(huán)境,安裝更簡便。

手動安裝 libpq 庫

既然缺了 libpq 庫,那就在 docker 鏡像里安裝。

這個方法我還沒測試,又麻煩又不優(yōu)雅

# 使用 Python 3.11 slim 基礎(chǔ)鏡像
FROM python:3.11-slim
# 安裝 psycopg2 依賴
RUN apt-get update && apt-get install -y \
    libpq-dev \
    gcc \
    # 清理緩存以減少鏡像大小
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

不同的python基礎(chǔ)鏡像

python鏡像基于 Debian 系統(tǒng),默認(rèn)是用 Debian 的最新穩(wěn)定版,也可以自己指定版本,比如 python3.11-slim-bookworm 就是指定用 Debian 12 ("bookworm") 作為基礎(chǔ)鏡像

  • python3.11-slim-bookworm 基礎(chǔ)鏡像打包出來的鏡像大小是424MB,python3.11-slim 打包出來也是這個大小
  • 使用 python3.11 基礎(chǔ)鏡像打包出來就到 1.3G 了,大小直接翻了幾倍

還可以選擇 alpine 鏡像,不過可能會遇到更多兼容性問題,我就不折騰了,心累。

小結(jié)

一般選 slim 鏡像還是可以的,基于 Debian 不怎么需要擔(dān)心兼容性問題

偶爾遇到小問題還是比較好解決的

alpine 鏡像不一樣的地方就很多了,太折騰了…

到此這篇關(guān)于使用python-slim鏡像遇到無法使用PostgreSQL的問題的文章就介紹到這了,更多相關(guān)python-slim無法使用PostgreSQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

西乌珠穆沁旗| 龙山县| 甘洛县| 韶关市| 江阴市| 华坪县| 乌兰县| 调兵山市| 杭锦旗| 金川县| 科技| 巴马| 子长县| 勐海县| 广安市| 仁怀市| 连州市| 定南县| 西城区| 肃宁县| 武安市| 福海县| 沙洋县| 同心县| 湾仔区| 游戏| 鸡泽县| 兴安盟| 织金县| 景洪市| 西平县| 道真| 滦南县| 托里县| 益阳市| 明星| 石林| 轮台县| 唐海县| 雷山县| 通城县|