Python 加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享对象文件:没有此类文件或目录
我有一个正在运行的django项目,出于某些原因,我不得不删除当前的mysql版本,并在我的机器上安装一个不同的mysql版本 但现在,当我尝试运行此程序时,得到如下错误:Python 加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享对象文件:没有此类文件或目录,python,mysql,django,Python,Mysql,Django,我有一个正在运行的django项目,出于某些原因,我不得不删除当前的mysql版本,并在我的机器上安装一个不同的mysql版本 但现在,当我尝试运行此程序时,得到如下错误: raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20:
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory
重新安装c共享库:
pip uninstall mysql-python
pip install mysql-python
使用以下命令:
pip uninstall mysql-python
pip install mysql-python
在我的例子中,它可以工作,因为它从符合的文件中搜索。我的问题是mysql环境没有完全设置好。我需要卸载MySQL-python;安装libmysqlclient-dev;重新安装MySQL-python以纠正此问题 因此,解决方案也是:
- sudopip卸载MySQL-python(从您选择的包管理器中卸载)
- sudo apt get安装libmysqlclient dev
- sudopip安装MySQL-python
sh: 1: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-Y7RFpJ/mysql-python/setup.py", line 17, in <module>
metadata, options = get_config()
File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
sh:1:mysql\u配置:未找到
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup.py”,第17行,在
元数据,options=get_config()
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup\u posix.py”,第43行,在get\u config中
libs=mysql\u config(“libs\u r”)
文件“/tmp/pip-build-Y7RFpJ/mysql-python/setup\u posix.py”,第25行,在mysql\u config中
raise环境错误(“%s未找到”%)(mysql\u config.path,)
环境错误:未找到mysql\u配置
带我去
使用:mysql 5.7、mysql python 1.2.5、django 1.8.9、ubuntu 16.04,我通过设置以下环境变量解决了相同的问题:
export LD_LIBRARY_PATH=/usr/local/mysql/lib
以防万一
pip卸载
和pip安装
不工作,并且您不想将特定路径设置为ld\u library\u path
,我在vps上做了什么:
cd /usr/local/lib
sudo ln -s /path/to/your/libmysqlclient.so.20
在我的例子中,我的mysql是从linuxbrew安装的(在home中安装是有原因的),所以我必须在那里导航
$home/.linuxbrew/ceral/mysql/5.7.18/lib/libmysqlclient.so.20
在我的例子中,问题是由Ubuntu升级引起的,所以我在/usr/lib/x86\u 64-linux-gnu
中找不到libmysqlclient.so.20
解决方案:
/usr/lib/x86\u 64-linux-gnu
中的existancelibmysqlclient.so.XX
(或类似文件)libmysqlclient.so.XX
(例如)sudo dpkg-i libmysqlclient(…).deb
和sudo-apt-get-Install-f
ln-s/usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so
我也有同样的问题,我修复了mysqlclient官员之前说的安装:
sudo apt get install python3 dev default libmysqlclient dev build-essential
请向询问更多信息和详细信息的用户提供答案。请仔细观察--无缓存目录
选项!这对我很有用!,感谢详细说明如何通过使用:yum whatprovides“libmysqlclient”从输出中找到我向yum询问的路径(在使用ami-linux时),我可以找到包含libmysqlclient.so的库文件夹,并将其添加到我的bash_配置文件导出LD_library_path=/usr/lib64/mysql57Lukasz上的LB_library_路径,我刚刚在这里发布了一个非常类似但稍微简单的答案:……以防你需要再次这样做。