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

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
G
Google Developers Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
博客园 - 叶小钗
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
P
Palo Alto Networks Blog
C
Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
Security Latest
Security Latest
H
Heimdal Security Blog
小众软件
小众软件
Cyberwarzone
Cyberwarzone
The Hacker News
The Hacker News
P
Privacy International News Feed
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Scott Helme
Scott Helme
博客园 - 【当耐特】
Latest news
Latest news
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
Jina AI
Jina AI
Spread Privacy
Spread Privacy
量子位
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网

博客园 - 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"]

测试连接数据库正常。