导入错误:libmariadbclient.so.18:无法打开共享对象文件:没有这样的文件或目录

Posted

技术标签:

【中文标题】导入错误:libmariadbclient.so.18:无法打开共享对象文件:没有这样的文件或目录【英文标题】:Importerror: libmariadbclient.so.18: cannot open shared object file: No such file or directory 【发布时间】:2018-02-13 20:37:00 【问题描述】:

当我想在 Debian 9.1 上运行我的 python 脚本时,我收到此错误消息。 我正在使用 MariaDB 10.1。

这里有什么问题?我该如何解决?

我的相关sql代码在这里:

connection = mysqldb.connect(host='localhost',
    user='root',
    passwd='1234',
    db='database')
cursor = connection.cursor()
query = """ load data local infile 'MYOUTPUTLOCATION' 
into table DEPARTURES
character set latin1
fields terminated by ';'
enclosed by '"'
lines terminated by '\r\n'
ignore 1 lines;
"""
cursor.execute(query)
connection.commit()
cursor.close()

【问题讨论】:

该文件属于libmariadbclient18 package。如果您安装了 mariadb 客户端,则不需要手动安装它。 apt install libmariadbclient18 解决问题了吗? 我明白了:“0 个已升级,0 个新安装,0 个要删除,9 个未升级。 文件/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18是否存在?无论如何,包裹似乎有问题。您可以尝试清除并重新安装(您可以运行 aptitude why libmariadbclient18 并清除所有依赖或推荐它的内容)。 我尝试使用“sudo apt-get remove --purge”代码删除它,当我重新安装这个 python-mysqldb 时,我得到了同样的错误(因为我可能设置了错误的版本)我该如何解决? 假设您使用 apt 安装 python-mysqldb,如果您的 apt 源是原始源,则不必担心版本。你的意思是它安装正确并且文件/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18不存在? 【参考方案1】:

如 cmets 中所述,python 客户端需要本地库。通过在 Debian 9.* 上安装 libmariadbclient18 来解决它。

在 Debian 10 (Buster) 上,该软件包仍然只能作为 libmariadbclient-dev 使用。

【讨论】:

谢谢,当我使用 Python slim buster Docker 映像时,buster 对我有用。【参考方案2】:

我报告了同样的错误,我发现这是因为我使用的是 Python 3 并且通过 PIP3 安装了 mysqlconnect 以允许使用 MySQLdb 模块进行连接。这失败了(Python 3 不支持 MySQLdb 并且由于某种原因没有安装 mysqlconnect)。

我通过 pip3 安装了 PyMySQL,使用...

sudo pip3 install PyMySQL 

...然后在 Python 3 代码中,我将模块从 MySQLdb 更改为 pymysql(将模块导入一行,然后使用它)。

【讨论】:

这对我没有帮助

以上是关于导入错误:libmariadbclient.so.18:无法打开共享对象文件:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

oracle导入错误

MyEclipse 导入项目后出现错误怎么办?

MAVEN项目导入我的工程错误。。

fastai.vision 导入错误:如何修复导入错误以便我可以使用 ImageDataBunch.from_folder?

Shp数据导入数据库发生错误

尝试导入错误:“initializeApp”未从“firebase”导出(导入为“firebase”)[关闭]