首页 > 数据库 >mac m2 python connect oracle 11g

mac m2 python connect oracle 11g

时间:2023-03-28 17:00:11浏览次数:46  
标签:11g python instantclient macos Oracle mac export oracle PATH

需要安装驱动

  • basic
  • sdk
  • sqlplus

下载地址

https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html

  • 目前并不支持 arm64

    • instantclient-basic-macos.x64-11.2.0.4.0.zip
    • instantclient-basic-macos.x64-11.2.0.4.0.zip
    • instantclient-sdk-macos.x64-11.2.0.4.0.zip
  • 全部加压放到一个目录

  • instantclient-11.2

设置环境变量

  • vim ~/.bash_profile
export ORACLE_HOME=/Users/jimogangdan/Downloads/instantclient_11_2
export DYLD_LIBRARY_PATH=/Users/jimogangdan/Downloads/instantclient_11_2
export PKG_CONFIG_PATH=/Users/jimogangdan/Downloads/instantclient_11_2
export PATH=$ORACLE_HOME:$PATH
export NLS_LANG=.AL32UTF8

pthon 代码

 import cx_Oracle

        dsn = cx_Oracle.makedsn(host='localhost', port=1521, sid='xe')
        with cx_Oracle.connect(user=r'fdm', password='qwe123', dsn=dsn) as connection:
            with connection.cursor() as cursor:
                sql = """select sysdate from dual"""
                for r in cursor.execute(sql):
                    print(r)

报错 找不到 连接文件

  • opendl( libclntsh.dylib ) no such file /usr/lib/libnnz11.dylib no such file

想到把 ibnnz11.dylib 复制到 /usr.lib

  • /usr/lib 没有权限sip 保护
  • 无奈进去恢复模式 设置限制

但是重启之后 read only file system

  • 然后复制 显示 cross deviece

检索发现 可以设置

  • x_Oracle.init_oracle_client()
  • lib_dir config_dir
  • 但是依然没用

然后发现一个.net 项目

然后重新设置 DYLD_LIBRARY_PATH

  • 提示 libso

然后就好了

标签:11g,python,instantclient,macos,Oracle,mac,export,oracle,PATH
From: https://www.cnblogs.com/guanchaoguo/p/17265889.html

相关文章

  • Python实践(2):文件批量重命名
    最近的工作中遇到了这样的问题:某一批文件以"XXX_1.xxx","XXX_2.xxx"..."XXX_11.xxx","XXX_12.xxx"...命名,在我的电脑上它是以数字从小到大的方式排序的,但在另一台设备上......
  • 100道python基础题——(20)
    题:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。提示:考虑使用yield。 yield使用方法:(34条消息)python中yield的用法详解——最简单,最清......
  • 通过Python SDK管理告警
    本文介绍通过PythonSDK使用告警的代码示例。前提条件已安装0.7.9及以上版本的PythonSDK。更多信息,请参见安装PythonSDK。管理告警监控规则代码示例如下。具体的......
  • Python中21道个程序小练习
    1.使用格式化输出的三种方式实现以下输出(name换成自己的名字,既得修改身高体重,不要厚颜无耻)name='ABDMLBM'height=175weight=140#"Mynameis'Nick',myheigh......
  • python opencv canny
    pythonopencvcanny importcv2#Loadtheimageimg=cv2.imread('path/to/image.jpg')#Converttheimagetograyscalegray=cv2.cvtColor(img,cv2.COLOR......
  • Python: Exception
     raisefromtry:try:1/0exceptZeroDivisionErrorase:raiseException("with_traceback")fromeexceptExceptionase:print......
  • opencv-python 4.2图像的几何变化
    转换OpenCV提供了两个转换函数cv.warpAffine和cv.warpPerspective,你可以使用它们进行各种转换。cv.warpAffine采用2x3变换矩阵作为参数输入,而cv.warpPerspective采用3x3变......
  • python generator相关
    本文的重点介绍python中的yield用法及这样的表达式:comp_list=[x*2forxinrange(10)] -- ListComprehensions和(x**2forxinrange(10)) -- Generato......
  • python笔记3(字典)
    字典1.字典的创建1.{}2.dict()3.通过fromkeys创建值为空的字典2.字典元素的访问通过get()方法以a={"name":"jiachao","age":20,"school":"tongda"}为例如若结......
  • python笔记4(控制语句)
    控制语句一:选择结构A:单分支结构if(条件语句):(缩进)结果缩进:pytharm中默认四个空格=TAB键例:a=input("请输入一个小于10的数:")ifint(a)<10:print(a)运行结果:条......