惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
AI
AI
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
S
Securelist
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
Cisco Talos Blog
Cisco Talos Blog
Cloudbric
Cloudbric
P
Privacy & Cybersecurity Law Blog
N
News and Events Feed by Topic
D
Docker
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
O
OpenAI News
人人都是产品经理
人人都是产品经理
腾讯CDC
博客园 - 三生石上(FineUI控件)
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Scott Helme
Scott Helme
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
N
News and Events Feed by Topic
J
Java Code Geeks
D
DataBreaches.Net
爱范儿
爱范儿
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
H
Heimdal Security Blog
F
Full Disclosure
L
LINUX DO - 最新话题
W
WeLiveSecurity
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42

博客园 - yi-sheng

AMD开发者中心Notebook开SSH与WEB外网访问 ROCm 环境多模态开发开源项目汇总 国产曦云C500双卡vllm框架本地部署qwen3.6-35B模型 国产曦云C500驱动安装 国产曦云C500双卡本地部署qwen3.6-35B模型 NVIDIA GeForce RTX 3080 魔改20G 运行大模型 FusionXpark_GB10救砖教程 ARM 架构NVIDIA GB10 Grace Blackwell环境中部署 Qwen3.6-35B 推理服务 Rufus的4.4制作ubuntu-24.04.4安装U盘 常用办公终端NEC 莱斯双盘位桌面存储阵列2代-LaCie 2big v2设置RAID1 常用办公终端配置信息 H3C LinSeer MegaCube灵犀MegaCube工作站使用笔记 4090多卡使用sglang推理框架docker布署qwen3.6-35B 国产曦云C500双卡本地部署qwen3.5-35B模型 国产GPU沐曦GPU系统曦云C500体验笔记 ARM 架构NVIDIA GB10 Grace Blackwell 芯片环境下安装conda FusionXpark GB10盒子开箱笔记 MCP开发技巧:静态参数作为行为提醒(Reminder Pattern) Teachable Machine安装 Qwen2.5-1.5B + LoRA 单张显卡 微调实战 Qwen2.5-1.5B + LoRA 微调实战 大模型基建实战:使用序列猴子数据集定制 BPE Tokenizer 老年小龙虾soul.md示例 低幻觉医疗大模型Baichuan-M2-32B本地部署笔记 小龙虾本地算力RTX 4090 (24G) 四卡本地SGLang框架跑qwen3.5-35B模型 MCP工具粒度的权衡 DELL XPS 13-7390 重装系统方法 搭建私有 Matrix 聊天服务器 OpenClaw小龙虾软件原理解析 小龙虾本地算力 RTX 4090 (24G) 四卡本地运行 Qwen2.5-27B​ 模型 OpenClaw 飞书平台配置指南 MacBook Air A1534 系统安装指南:从 macOS 到 Windows
Python 3.11.6 + Oracle 11g​开发环境配置
yi-sheng · 2026-04-03 · via 博客园 - yi-sheng

Python 3.11.6 + Oracle 11g​ 的环境

方案对比总结

特性

python-oracledb (Thick)

cx_Oracle

Python 3.11 支持

✅ 完美

✅ 良好

维护状态

🔥 官方积极维护

🚧 仅维护

异步支持

✅ 原生 async/await

❌ 不支持

Oracle 11g 兼容性

✅ 需 Instant Client

✅ 需 Instant Client

推荐指数

⭐⭐⭐⭐⭐

⭐⭐⭐

最终建议:直接使用 python-oracledb + Instant Client 19c,这是目前 Python 3.11.6 连接 Oracle 11g 最稳妥、面向未来的方案。

针对 Python 3.11.6 + Oracle 11g​ 的环境,配置 Oracle Instant Client是连接成功的关键。由于 Oracle 11g 协议较老,必须使用 Thick Mode(厚模式),且推荐使用 Instant Client 19c​ 版本进行向下兼容。

Windows 、 Linux 、Docker的详细配置指南。

windows环境:

将下载instantclient_19_30的 ZIP 包解压到无中文、无空格的路径下,例如:C:\oracle\instantclient_19_30
下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html
右键“此电脑” → 属性 → 高级系统设置 → 环境变量。系统变量中找到 Path,点击编辑。新建并添加你的 Instant Client 路径:C:\oracle\instantclient_19_30点击确定保存。

python3中:

import oracledb
import datetime


    # 启用 thick 模式以支持旧版本 Oracle 数据库
    try:
        oracledb.init_oracle_client()
        print("已启用 thick 模式")
    except Exception as e:
        print(f"启用 thick 模式失败: {e}")
        print("将尝试使用 thin 模式")

测试连接成功。

Linux 配置指南(CentOS/Ubuntu)

下载地址:   https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html    我这里下载  instantclient_19_30

解压与目录结构

# 1. 创建目录并解压
sudo mkdir -p /opt/oracle
sudo unzip instantclient-basic-linux.x64-19.21.0.0.0dbru.zip -d /opt/oracle/
sudo unzip instantclient-sqlplus-linux.x64-19.21.0.0.0dbru.zip -d /opt/oracle/

# 2. 创建软链接(关键步骤,解决版本号问题)
cd /opt/oracle/instantclient_19_21
sudo ln -s libclntsh.so.19.1 libclntsh.so

配置动态链接库路径

# 1. 编辑配置文件
sudo vim /etc/ld.so.conf.d/oracle.conf

# 2. 写入以下内容
/opt/oracle/instantclient_19_21

# 3. 刷新配置
sudo ldconfig

Docker 环境特殊配置

在 Dockerfile 中,除了复制 Instant Client,还需安装 libaio
基础镜像用 python:3.11-slim,此镜像的操作系统为Debian GNU/Linux 13 (trixie)

FROM python:3.11-slim

# 设置工作目录

WORKDIR /app

# 安装系统依赖并创建符号链接

RUN apt-get update && \

    apt-get install -y libaio1t64 && \

    # 创建 libaio.so.1 符号链接

    ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 && \

    rm -rf /var/lib/apt/lists/*

# 创建目录并复制 Instant Client

RUN mkdir -p /opt/oracle

COPY instantclient_19_30 /opt/oracle/instantclient_19_30

# 设置环境变量(修正语法)

ENV ORACLE_HOME=/opt/oracle/instantclient_19_30 \

    LD_LIBRARY_PATH=/opt/oracle/instantclient_19_30 \

    PATH=/opt/oracle/instantclient_19_30:$PATH

# 创建必要的符号链接和库文件

RUN cd $ORACLE_HOME && \

    # 创建基本的符号链接

    ln -sf libclntsh.so.19.1 libclntsh.so && \

    ln -sf libocci.so.19.1 libocci.so && \

    # 创建库缓存(如果需要)

    ldconfig || true

# 调试:显示环境变量(只在构建时运行)

RUN echo "=== 环境变量设置 ===" && \

    echo "ORACLE_HOME: $ORACLE_HOME" && \

    echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH" && \

    echo "PATH: $PATH" && \

    echo "=== 库文件检查 ===" && \

    ls -la $ORACLE_HOME/*.so* 2>/dev/null || echo "未找到 .so 文件"

# 复制依赖文件

COPY requirements.txt .

# 安装依赖,使用阿里云镜像源

RUN pip3 install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 复制应用代码

COPY . .

# 环境变量

ENV PYTHONUNBUFFERED=1

# 健康检查

HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \

    CMD python -c "import oracledb; print('Oracle client available')" || exit 1

# 运行应用

CMD ["python", "app.py"]

测试连接数据库正常。