【问题标题】:Python 3 script errors out with sqlite3 and logstash_async errorsPython 3 脚本因 sqlite3 和 logstash_async 错误而出错
【发布时间】:2025-12-08 18:40:01
【问题描述】:

首先,这是我的第一篇文章,所以如果我的格式、礼仪等有问题,请告诉我,以便我更正。

在详尽的谷歌搜索之后,我没有找到解决方案。

我正在尝试对 Python 脚本进行故障排除。它应该在 Python 3.6 和/或更新版本中运行。我尝试了不同的方法来尝试让它运行,即虚拟环境、不同的 Python 版本(仅限 3.6 和 3.8)以及不同的用户,但它总是失败并出现以下相同的错误。我已经检查了安装的 Python 模块应该是正确的,但我不相信它们可能是需要的正确的。

这是脚本(当然是经过消毒的):

import logging

from logstash_async.handler import AsynchronousLogstashHandler

host = 'serverA.xyz.com'
port = 3306

# Get you a test logger
test_logger = logging.getLogger('python-logstash-logger')

# Set it to whatever level you want - default will be info
test_logger.setLevel(logging.DEBUG)

# Create a handler for it
test_logger.addHandler(AsynchronousLogstashHandler(host, port, database_path=None))

# Add the handler to the logger
#test_logger.addHandler(handler)

# sending amessage
test_logger.info("This is a test Message")

这是我不断收到的错误:

Traceback (most recent call last):
  File "test_elk.py", line 3, in <module>
    from logstash_async.handler import AsynchronousLogstashHandler
  File "/opt/gpi-datalake/.local/lib/python3.8/site-packages/logstash_async/handler.py", line 11, in <module>
    from logstash_async.worker import LogProcessingWorker
  File "/opt/gpi-datalake/.local/lib/python3.8/site-packages/logstash_async/worker.py", line 17, in <module>
    from logstash_async.database import DatabaseCache, DatabaseLockedError
  File "/opt/gpi-datalake/.local/lib/python3.8/site-packages/logstash_async/database.py", line 7, in <module>
    import sqlite3
ModuleNotFoundError: No module named 'sqlite3'

需要的模块(基于详尽搜索)

尝试过的 Python 版本(包括 Python 虚拟环境)

  • Python 3.8.7
  • Python 3.6.8

环境:

  • Red Hat Enterprise Linux Server 7.9 版(迈坡)

已安装 SQLite3 包:

libsqlite3x.x86_64                 20071018-20.el7         @epel                
libsqlite3x-devel.x86_64           20071018-20.el7         @epel                
python-sqlite3dbm.noarch           0.1.4-6.el7             @epel                
sqlite.x86_64                      3.7.17-8.el7_7.1        @rhel-x86_64-server-7
sqlite-devel.x86_64                3.7.17-8.el7_7.1        @rhel-7-server-rpms 

提前致谢。

【问题讨论】:

  • 当你$ pip3 show sqlite3 时会发生什么?
  • 这是我得到的:WARNING: Package(s) not found: sqlite3

标签: python python-3.x sqlite redhat


【解决方案1】:

默认情况下你应该有 sqlite3 模块。您似乎已经卸载了它。

如果你从解释器行输入,你会看到 sqlite3 吗?

>>> help("modules")

【讨论】:

  • 未列出。 Pysqlite3 已列出。从我可以在 Python3 中找到的 sqlite 被 pysqlite 替换。我很可能删除了已安装的 sqlite3。如果是这种情况,我只能在 Python3 中安装 pysqlite3,我将如何解决这个冲突?
  • sqlite3 包含在标准 Python 库中。因此,如果默认情况下不存在,则需要重新安装它(这可能涉及重建 Python)。 *.com/questions/19530974/…
  • 我就是这么想的。谢谢。
最近更新 更多