安装 cx_Oracle 失败

Installation cx_Oracle fails

系统:MacBook Pro M1 16GB 内存

Python 3.8.5

我正在尝试安装 cx_Oracle 模块,但它确实有效。

sudo easy_install cx_Oracle --> 成功

从 Oracle 安装 Basic 和 SDK 客户端,按照自述文件中的安装脚本完成从“Stick”的复制。

现在这些复制的文件夹就在我的下载目录中,我想,我需要将两个客户端 ([instanclient...]) 放到一个特定的目录中,但不知道在哪里。 所以...

当我尝试 运行 终端中的 python 程序时出错:Traceback (most recent call last): File "app.py", line 5, in <module> connection = cx_Oracle.connect("hr", "hr", "10.0.0.22/orclpdb") cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 1): image not found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

pyCharm 中的错误: No module named 'cx_Oracle'

此外,这个解决方案对我不起作用,因为我在 /lib 中没有 oracle 文件夹 https://github.com/oracle/node-oracledb/issues/1244#issuecomment-624646368

我需要将文件夹放在哪里,以便我可以在 pyCharm 中使用 'cx_Oracle' 模块?

提前致谢

按照位于此处的文档中的说明进行操作:https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html

只要 cx_Oracle 安装在 PyCharm 使用的 Python 中,您就应该能够看到它。

[PyCharm 修正如下]

我解决了这个问题,方法是使用 cx_Oracle.init_oracle_client()文档中引用的命令。 虽然我得到了结果,但它只在命令行中有效。如果我尝试在 pyCharm 中使用它,它仍然无法识别我的 cx_Oracle 模块。 (我会为这个错误开一张新票)

这是示例代码:

import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir="/Users/benreisinger/Documents/testclients/instantclient_19_8", config_dir=None, error_url=None, driver_name=None)
# Connect as user "hr" with password "welcome" to the "orclpdb1" service running on this computer.
connection = cx_Oracle.connect("hr", "hr", "10.0.0.22/orclpdb")

cursor = connection.cursor()
cursor.execute("""
        select e.first_name AS fname, e.last_name AS lname, e.department_id, d.department_name
            from employees e 
            inner join departments d 
                on (e.department_id = d.department_id)
        """)

for first_name, last_name, department_id, department_name in cursor:
    print("Values:", first_name, last_name, department_id, department_name)

仅在终端中显示结果!

修复:PyCharm->首选项->项目:[您的项目]-> Python 解释器-> 添加 cx-Oracle 包

--> 通过此修复,PyCharm 最终识别了 cx_Oracle 模块 :)