【发布时间】:2019-06-30 02:10:10
【问题描述】:
我的 oracle 数据库 [OracleSlim] 在 Docker 容器中启动并运行,我在容器内创建了一个用户表。它在 0.0.0.0:1521 上运行。我是否需要“安装 oracle 即时客户端”才能使 cx_oracle 正常工作?
我在容器内尝试了这个“sqlplus 管理员/Welcome121@ORCLCDB”连接字符串。它正在工作。
from sqlalchemy import create_engine
import cx_Oracle
engine=create_engine('oracle://username:password@hostname:port/sid')
错误:
cx_Oracle.DatabaseError: DPI-1047: 64 位 Oracle 客户端库不能 被加载:“libclntsh.so:无法打开共享对象文件:没有这样的文件 或目录”。见 https://oracle.github.io/odpi/doc/installation.html#linux求帮助
我的烧瓶-Sqlalchemy 的引擎对象中的一个成功的 oracle 连接。 欢迎使用新的 ORM 或用于连接 oracle 的包。 注意:我没有在本地安装 oracle 即时客户端 但已将其安装在我的容器中。
更新
现在我的 Docker 容器上运行了 Oracle。我将在本地连接来自 Python cx_Oracle 的那些。用下面的方法,
import cx_Oracle
constr = 'system/oracle@//172.17.0.2:1521/orcl.localdomain'
conn = cx_Oracle.connect(constr)
是否可以在 python cx_Oracle 或 Flask-SQLAlchemy 的帮助下连接在 localhost:1521 上运行的容器?
【问题讨论】:
-
你解决了吗?
标签: python docker sqlalchemy cx-oracle