news 2026/4/23 21:07:47

Python下载第三方库:requests、oracledb,连接 Oracle 数据库,测试数据输出(切记不要操作或删除系统表)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python下载第三方库:requests、oracledb,连接 Oracle 数据库,测试数据输出(切记不要操作或删除系统表)

文章详细记录了在Python环境中安装和使用requests库及oracledb连接Oracle数据库的过程。


首先展示了requests库的安装验证方法,包括版本检查和使用示例。


随后重点解析了Oracle数据库连接的4类常见错误:模块未安装、参数错误、服务名未注册和SQL语法错误,提供了详细的错误排查方法和正确代码模板。


文章特别强调使用lsnrctl services查看正确服务名、移除encoding参数、SQL语句不加分号等关键点,并给出了最终正确的代码示例。


通过系统总结连接Oracle数据库的典型错误及解决方案,为开发者提供了实用的技术参考。


关联阅读推荐


大数据开发数据库环境搭建:Oracle Database 21c XE 和 Oracle SQL Developer 安装,连接数据库,创建100 万行数据,分析练习


pip3 install requests


(global_venv) PS C:\Users\86178\PyCharmMiscProject\mumu\day> cd .. (global_venv) PS C:\Users\86178\PyCharmMiscProject\mumu> pip3 install requests Collecting requests Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB) Collecting charset_normalizer<4,>=2 (from requests) Downloading charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl.metadata (41 kB) Collecting idna<4,>=2.5 (from requests) Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB) Collecting urllib3<3,>=1.26 (from requests) Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests) Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB) Downloading requests-2.33.1-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl (158 kB) Downloading idna-3.11-py3-none-any.whl (71 kB) Downloading urllib3-2.6.3-py3-none-any.whl (131 kB) Downloading certifi-2026.2.25-py3-none-any.whl (153 kB) Installing collected packages: urllib3, idna, charset_normalizer, certifi, requests Successfully installed certifi-2026.2.25 charset_normalizer-3.4.7 idna-3.11 requests-2.33.1 urllib3-2.6.3 (global_venv) PS C:\Users\86178\PyCharmMiscProject\mumu> ls 目录: C:\Users\86178\PyCharmMiscProject\mumu Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2026-04-21 下午 04:22 .idea d----- 2026-04-16 上午 09:12 AI d----- 2026-04-21 下午 04:20 day d----- 2026-04-16 上午 09:56 niuke d----- 2026-04-21 上午 09:41 review d----- 2026-04-17 上午 09:47 test

安装完验证,怎么没看到request呢


你安装的requests库是 Python 包,不会在目录里显示为文件夹。它被安装到了你的虚拟环境global_venvLib/site-packages目录中。


验证 requests 是否安装成功的方法:


1.在 Python 中导入测试(最直接)

bash

python -c "import requests; print(requests.__version__)"

如果显示版本号(如2.33.1),说明安装成功。


2.查看已安装的包列表

bash

pip list

应该能看到requests在列表中。


(global_venv) PS C:\Users\86178\PyCharmMiscProject\mumu> pip list Package Version ------------------ --------- certifi 2026.2.25 charset-normalizer 3.4.7 idna 3.11 markdown-it-py 4.0.0 mdurl 0.1.2 pip 26.0.1 Pygments 2.20.0 requests 2.33.1 rich 15.0.0 urllib3 2.6.3

pip list的输出可以看到,requests 已经成功安装了


text

requests 2.33.1

你现在可以正常使用requests库了。快速验证一下:

bash

python -c "import requests; print(requests.__version__)"

应该会输出2.33.1


你现在可以这样使用:

import requests # 发送 GET 请求 response = requests.get('https://www.baidu.com') print(response.status_code) # 200 表示成功 # 发送 POST 请求 # response = requests.post('https://httpbin.org/post', data={'key': 'value'}) # 处理 JSON 数据 # data = response.json()

3.查看 requests 的安装位置

bash

pip show requests

会显示安装路径,类似:

text

Location: C:\Users\86178\PyCharmMiscProject\mumu\global_venv\Lib\site-packages

4.进入 Python 交互环境测试

bash

python >>> import requests >>> response = requests.get('https://www.baidu.com') >>> print(response.status_code) 200

为什么ls看不到?

  • ls显示的是当前目录下的文件和文件夹

  • Python 包安装在虚拟环境的site-packages目录,不在你的项目根目录

  • 这是正常的 Python 包管理机制


你可以直接运行上面的验证命令,应该能正常使用requests库了!


测试连接数据库,输出数据


Oracle 21c XE 和 Python 3.13.13 兼容吗


兼容。安装的Oracle 21c XEPython 3.13.13可以配合使用,官方驱动python-oracledb明确支持这一组合。


只需在你的终端(如命令提示符或 PowerShell)执行以下命令即可完成安装:

bash

pip install oracledb --upgrade
⚙️ 两种连接模式

安装后,你有两种方式连接数据库,推荐优先尝试Thin 模式

  • Thin 模式 (推荐新手):这是驱动默认的模式,无需安装 Oracle 客户端,直接用 Python 代码就能连接,非常简单省事。前提是数据库版本需为 12.1 或更高(你的 21c 完全满足)。

  • Thick 模式 (高级功能):如果需要用到 Oracle 的一些高级功能(如 AQ 消息队列),则需额外下载Oracle Instant Client并配置环境变量,连接时需切换到此模式。

以下是运行成功的完整示例

#第三方模块 安装 打开Python控制台(终端) #项目根目录执行命令 #pip3 install requests #做爬虫的库 #安装完验证 #在Python代码中import import requests as rs import oracledb as orcl #没有名称为 'oracledb' 的模块? #oracledb 未下载:pip install oracledb # 使用 xepdb1 服务名(推荐,这是可插拔数据库) config_1 = { "user": "BIGDATA_DEV", # 改为大写 "password": "dev123", "dsn": "127.0.0.1:1521/xepdb1" } #从报错信息 ORA-01017: 用户名/口令无效; 登录被拒绝 来看,你的 Python 代码和 Oracle 数据库的连接是成功建立的,问题出在身份验证这一步。 #检查是否有大小写问题(Oracle 默认存储用户名是大写的,但通常不区分) #不是大小写的原因,密码错了已改正。 # config_1 = { # "user":"scott", # "password":"123456", # "dsn":"127.0.0.1:1521/orcl" # #"encoding":"UTF-8" # } # 这个错误 DPY-6001 意思是:你的 Python 程序成功找到了 Oracle 监听器(在 127.0.0.1 的 1521 端口),但这个监听器不知道有一个叫 "orcl" 的服务。 # 这通常是因为连接字符串中使用的“服务名”与数据库实际注册的名称不符。 # scott 用户可能不存在或未解锁 # scott 是 Oracle 示例用户,在 XE 版本中可能默认不存在 # 如果连接成功但提示用户不存在,需要先创建或解锁 scott #oracledb 的 connect() 方法不支持 encoding 参数。 conn = orcl.connect(**config_1) # cur = conn.cursor() # cur.execute("select * from emp") # res = cur.fetchall() # for i in res: ##[(7369,'Smith',...),(第二行数据),(第三行数据)..] # print(i) # conn.close() try: conn = orcl.connect(**config_1) print("数据库连接成功!") cur = conn.cursor() cur.execute("SELECT * FROM orders WHERE ROWNUM <= 10") res = cur.fetchall() for i in res: print(i) cur.close() conn.close() except orcl.Error as e: print(f"数据库错误: {e}") #现在遇到的 ORA-00933: SQL 命令未正确结束 错误,是因为你 SQL 语句末尾的分号 ; 导致的。 #在 Python 的 oracledb 执行单条 SQL 语句时,不需要也不能加 ;。分号是 SQL 客户端(如 SQL*Plus、DBeaver)中的语句分隔符,但在编程接口中直接传入会报错。

输出

数据库连接成功! (619, 2537, 'Product_403', 3774.73, datetime.datetime(2025, 7, 20, 13, 24, 13), 'COMPLETED') (620, 2952, 'Product_283', 3322.63, datetime.datetime(2025, 4, 26, 13, 24, 13), 'COMPLETED') (621, 739, 'Product_1', 252.36, datetime.datetime(2025, 12, 29, 13, 24, 13), 'COMPLETED') (622, 5170, 'Product_469', 1832.32, datetime.datetime(2025, 8, 11, 13, 24, 13), 'COMPLETED') (623, 457, 'Product_407', 915.15, datetime.datetime(2025, 6, 23, 13, 24, 13), 'COMPLETED') (624, 4381, 'Product_150', 4850.8, datetime.datetime(2026, 1, 16, 13, 24, 13), 'PENDING') (625, 9542, 'Product_173', 4984.05, datetime.datetime(2025, 9, 6, 13, 24, 13), 'CANCELLED') (626, 4483, 'Product_219', 2489.47, datetime.datetime(2025, 10, 13, 13, 24, 13), 'PENDING') (627, 942, 'Product_20', 4500.96, datetime.datetime(2026, 1, 5, 13, 24, 13), 'PENDING') (628, 8995, 'Product_188', 2744.2, datetime.datetime(2026, 3, 4, 13, 24, 13), 'CANCELLED') 进程已结束,退出代码为 0

提示:没有配置任何数据源来运行此 SQL 并提供高级代码辅助。 通过问题菜单(Ctrl+.)禁用此检查。


这个提示是 PyCharm 的代码辅助功能警告,不是真正的错误。它只是表示 PyCharm 不知道你的数据库结构,所以无法提供代码补全和语法检查。


解决方法:

方法1:忽略警告(最简单)

代码仍然可以正常运行,这只是编辑器的提示。点击提示框,选择"禁用此检查"即可。


方法2:配置数据源(推荐)

让 PyCharm 连接到你的 Oracle 数据库,获得代码补全功能:

  1. 右侧边栏Database工具窗口

  2. 点击+Data SourceOracle

  3. 填写连接信息:

    • Host:127.0.0.1

    • Port:1521

    • Service/SID:orcl

    • User: bigdata_dev

    • Password: dev123

  4. 点击Test Connection测试

  5. 应用并确定


配置成功后,PyCharm 就能识别表名、字段名,并提供智能提示。


Oracle 数据库连接与执行错误总结


根据实际操作过程,共遇到4 个典型错误,现总结如下:


错误 1:模块未安装


错误信息:

text

没有名称为 'oracledb' 的模块

原因:
未安装oracledbPython 包

解决方案:

bash

pip install oracledb

错误 2:connect() 参数错误


错误信息:

text

TypeError: connect() got an unexpected keyword argument 'encoding'

原因:
oracledbconnect()方法不支持encoding参数

解决方案:

python

# 错误写法 config = { "user": "scott", "password": "123456", "dsn": "127.0.0.1:1521/orcl", "encoding": "UTF-8" # 删除此行 } # 正确写法 config = { "user": "scott", "password": "123456", "dsn": "127.0.0.1:1521/orcl" }

错误 3:服务名未注册(监听器找不到服务)


解决方法

可以按以下步骤来定位和解决问题:


1. 确认数据库的真实服务名

打开命令提示符(cmd)或 PowerShell,使用 Oracle 自带的lsnrctl工具来查看服务名。

bash

lsnrctl services

在命令的输出中,找到状态为READY的服务实例,它旁边显示的就是你可以用来连接的、正确的服务名。它会像xepdb1pdb1这样。


2. 修正你的连接字符串

找到正确的服务名后,修改代码。

错误信息:

text

DPY-6001: Service "orcl" is not registered with the listener ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

原因:
连接字符串中的服务名orcl与数据库实际注册的服务名不符

诊断方法:

bash

lsnrctl services # 查看数据库实际注册的服务名

  • 确认数据库正在运行:确保你的 Oracle 数据库服务已经成功启动,处于可连接状态。

  • 检查监听器状态:在命令行执行lsnrctl status,确保监听器正在运行并且没有报错。

输出

C:\Users\86178>lsnrctl services LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 22-4月 -2026 10:32:51 Copyright (c) 1991, 2021, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MuJinqiu)(PORT=1521))) 服务摘要.. 服务 "57db0fdd4f3b4b59b5325a24da9f6512" 包含 1 个实例。 实例 "xe", 状态 READY, 包含此服务的 2 个处理程序... 处理程序: "N000:dedicated" 已建立:0 已拒绝:0 状态:ready CMON <machine: MUJINQIU, pid: 36336_31144> (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=4803)) "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER 服务 "CLRExtProc" 包含 1 个实例。 实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 服务 "XE" 包含 1 个实例。 实例 "xe", 状态 READY, 包含此服务的 2 个处理程序... 处理程序: "N000:dedicated" 已建立:0 已拒绝:0 状态:ready CMON <machine: MUJINQIU, pid: 36336_31144> (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=4803)) "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER 服务 "XEXDB" 包含 1 个实例。 实例 "xe", 状态 READY, 包含此服务的 1 个处理程序... 处理程序: "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: MUJINQIU, pid: 36336_32672> (ADDRESS=(PROTOCOL=tcp)(HOST=MuJinqiu)(PORT=4801)) 服务 "xepdb1" 包含 1 个实例。 实例 "xe", 状态 READY, 包含此服务的 2 个处理程序... 处理程序: "N000:dedicated" 已建立:0 已拒绝:0 状态:ready CMON <machine: MUJINQIU, pid: 36336_31144> (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=4803)) "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER 命令执行成功

lsnrctl services的输出可以看到,你的 Oracle 数据库有多个可用的服务名。


其中最常用的是:

  • XE(大写)

  • xepdb1(小写,这是可插拔数据库)

关于SIDSERVICE_NAME

这里有个概念需要区分一下:

  • SID:是数据库实例的唯一标识符,一个实例只有一个SID。

  • SERVICE_NAME:是数据库对外提供服务时的逻辑名称,一个数据库可以有多个服务名,是更灵活、推荐的连接方式。


解决方案:

python

# 根据 lsnrctl services 输出,使用正确的服务名 config = { "user": "scott", "password": "123456", "dsn": "127.0.0.1:1521/xepdb1" # 或 XE }

输出解析示例:

text

服务 "xepdb1" 包含 1 个实例。 # ✅ 可用的服务名 服务 "XE" 包含 1 个实例。 # ✅ 可用的服务名

错误 4:SQL 语法错误(语句未正确结束)


错误信息:

text

ORA-00933: SQL 命令未正确结束

原因:
在 Python 的execute()方法中,SQL 语句末尾不能加分号;(分号是客户端工具的分隔符,不是 SQL 语法的一部分)

解决方案:

python

# 错误写法 cur.execute("SELECT * FROM orders WHERE ROWNUM <= 10;") # ❌ 末尾有分号 # 正确写法 cur.execute("SELECT * FROM orders WHERE ROWNUM <= 10") # ✅ 去掉分号

其他注意事项
  1. 多语句执行:如果你需要一次执行多个 SQL 语句(例如建表+插入数据),可以使用cur.executescript()方法,这时才需要分号分隔。

  2. ROWNUM 用法正确你在 Oracle 中使用ROWNUM <= 10来限制返回行数是正确的。

  3. 表名确认确保orders表在当前用户模式下存在。如果提示表不存在(ORA-00942),可能需要指定所有者,如"SELECT * FROM system.orders"或先授权。

附加错误:用户名/密码错误


确认用户名和密码是否正确

  • 检查是否有大小写问题(Oracle 默认存储用户名是大写的,但通常不区分)

  • 确认密码是否正确

  • 尝试用BIGDATA_DEV大写用户名连接

  • 代码中的orders表可能属于其他用户(如system),bigdata_dev需要被授权才能访问

  • 如果bigdata_dev用户确实存在,可能需要重置密码ALTER USER bigdata_dev IDENTIFIED BY new_password

注意事项

  1. scott 用户可能不存在或未解锁

    • scott 是 Oracle 示例用户,在 XE 版本中可能默认不存在

    • 如果连接成功但提示用户不存在,需要先创建或解锁 scott

错误信息:

text

ORA-01017: 用户名/口令无效; 登录被拒绝

原因:
用户名或密码输入错误

解决方案:

  1. 检查用户名/密码是否正确

  2. 确认用户未被锁定:ALTER USER username ACCOUNT UNLOCK;

  3. 确认用户有相应权限:GRANT CONNECT, RESOURCE TO username;


"用户被锁定" 的含义


用户被锁定是 Oracle 数据库的一种安全保护机制。当用户连续多次输入错误密码登录失败后,数据库会自动将该用户账户临时锁定,防止暴力破解密码。


总结
  • 锁定是安全机制:防止暴力破解

  • 默认触发条件:连续 10 次密码错误

  • 解决办法:管理员执行ALTER USER ... ACCOUNT UNLOCK;

  • 预防措施:确保代码中密码配置正确,避免反复用错误密码连接


如果你之前遇到的是ORA-01017(密码无效),说明账户当时没有被锁定。但如果继续用错误密码尝试多次,账户最终会被锁定,变成ORA-28000

最终正确代码模板

python

import oracledb as orcl # 正确配置(无 encoding 参数,使用正确的服务名) config = { "user": "your_username", "password": "your_password", "dsn": "127.0.0.1:1521/xepdb1" # 使用 lsnrctl services 查到的服务名 } try: conn = orcl.connect(**config) print("数据库连接成功!") cur = conn.cursor() cur.execute("SELECT * FROM orders WHERE ROWNUM <= 10") # SQL 语句不加分号 res = cur.fetchall() for row in res: print(row) cur.close() conn.close() except orcl.Error as e: print(f"数据库错误: {e}")

错误排查流程图

text

安装 oracledb → pip install oracledb ↓ 检查参数 → 移除 encoding 等不支持参数 ↓ 确认服务名 → lsnrctl services → 使用正确的服务名(如 xepdb1) ↓ 确认用户名/密码 → 检查用户状态和权限 ↓ 检查 SQL 语法 → 去掉末尾的分号 ↓ ✅ 成功执行

关键要点

错误类型核心原因解决方法
模块未安装未安装 oracledbpip install oracledb
参数错误使用了不支持的参数移除encoding等参数
服务名错误服务名与数据库不符使用lsnrctl services查看正确服务名
用户名密码错误认证信息不正确检查用户名/密码/用户状态
SQL 语法错误SQL 语句末尾加分号删除 SQL 语句末尾的分号

这些是连接 Oracle 数据库时最常见的错误,掌握这些排查方法可以解决大部分连接问题。


补充:刚安装的 Oracle 21c XE,里面也有很多表,是示例用的吗


是的,你看到的这些表是 Oracle 预装的示例模式(Sample Schemas),用于学习和测试,不是数据库运行所必需的。


具体说明如下:

  • 常见示例:最典型的是HR(人力资源)模式,包含EMPLOYEESDEPARTMENTS等经典教学表。

  • 是否必须不是必需的。它们是可选的,只为了帮你熟悉 Oracle 特性。删掉它们对数据库核心功能完全没影响。

  • 21c 的变化:以前版本通常默认安装 HR,但在21c XE中,这些示例表可能不会自动创建。如果你看到很多表却认不出来,也可能是在SYSTEM等系统表空间里,切记不要操作或删除系统表,否则可能导致数据库损坏。


🔍 如何确认你看到的是什么表?

建议你切换到之前创建的BIGDATA_DEV用户连接(而不是 SYSTEM),查看自己 schema 下的表:

sql

-- 查看当前用户下的所有表 SELECT table_name FROM user_tables;


orders表是新建的,不是原本就有的


从你的截图可以看到,BIGDATA_DEV用户下目前只有你自己创建的ORDERS这一张表。这说明 Oracle 21c XE 在安装时并没有自动安装那些示例表(比如经典的 HR 员工表)。


🔍 结论分析

  • 之前看到的“很多表”:当你用SYSTEM等高权限账号登录时,看到的是 Oracle 的系统表(如数据字典表),它们用于管理数据库本身,不是拿来练 SQL 的,也绝对不能动

  • 当前状态:你现在用的BIGDATA_DEV是一个普通用户,下面只有自己创建的业务表,这才是我们进行开发练习的“干净”环境。

📚 如果你需要 HR 示例表来练习

很多教材(尤其是考证类)会用到经典的EMPLOYEES(员工表)、DEPARTMENTS(部门表)等 HR 模式。如果你确实需要,可以手动安装。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 21:03:38

一文讲清,精益生产系统是什么意思?什么是精益生产系统?

很多制造型企业的老板和管理者都在问&#xff1a;精益生产系统是什么意思&#xff1f;到底什么是精益生产系统&#xff1f;它真的能帮我的工厂省钱增效吗&#xff1f;其实&#xff0c;精益生产系统并不是一套高深莫测的理论&#xff0c;而是一套实实在在、以“消除浪费”为核心…

作者头像 李华
网站建设 2026/4/22 21:01:16

从零到一:用Go语言打造的极简域名邮箱Pmail实战部署指南

1. 为什么选择Pmail搭建个人域名邮箱 最近几年&#xff0c;个人隐私保护意识越来越强&#xff0c;很多开发者都开始考虑自建各种网络服务。邮箱作为日常高频使用的工具&#xff0c;自建需求尤其突出。但传统方案如PostfixDovecot组合配置复杂&#xff0c;内存占用高&#xff08…

作者头像 李华
网站建设 2026/4/22 20:59:15

NOIP 2009 普及组 真题全解(超详细讲解版)

目录 多项式输出&#xff08;模拟 / 字符串处理&#xff09;分数线划定&#xff08;排序 / 结构体&#xff09;细胞分裂&#xff08;质因数分解 / 数学&#xff09;道路游戏&#xff08;线性 DP / 环形处理&#xff09; T1 多项式输出 题目链接 洛谷 P1067&#xff1a;https…

作者头像 李华
网站建设 2026/4/22 20:58:17

云手机 云端运行托管

云手机中的云端运行托管主要是指将手机系统运行在云端服务器上&#xff0c;用户无需依赖本地物理设备&#xff0c;通过电脑、平板或其他手机等终端&#xff0c;即可远程连接并操控云端手机。这种模式下&#xff0c;云端手机拥有独立的操作系统、存储空间和网络环境&#xff0c;…

作者头像 李华
网站建设 2026/4/22 20:57:04

这次,库克真的要卸任苹果CEO了!

一水 发自 凹非寺量子位 | 公众号 QbitAI这次&#xff0c;库克真的要卸任苹果CEO了。苹果最新官宣——9月1日&#xff0c;掌权苹果15年的库克&#xff0c;将把CEO一职交棒给现任硬件工程高级副总裁John Ternus。而库克本人&#xff0c;将转居幕后任执行董事长。△图源&#xff…

作者头像 李华
网站建设 2026/4/22 20:57:02

STM32H743开发板机器视觉应用开发指南

1. WeAct STM32H743开发板深度解析WeAct STM32H743是一款基于480MHz STM32H743VIT6 Cortex-M7微控制器的紧凑型开发板&#xff0c;专为嵌入式视觉应用设计。这块板子最吸引人的地方在于它集成了0.96英寸LCD显示屏和摄像头接口&#xff0c;可以直接连接OV系列摄像头模块&#xf…

作者头像 李华