导入错误: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:无法打开共享对象文件:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
fastai.vision 导入错误:如何修复导入错误以便我可以使用 ImageDataBunch.from_folder?