我在Bluehost上有一个共享托管环境。我正在运行python(+ django)的自定义安装,其中包含一些已安装的模块。一直在工作,直到昨天在服务器上进行了更改(我假设),这给了我这个django错误:
... File "/****/****/.local/lib/python/django/utils/importlib.py", line 35, in import_module __import__(name) File "/****/****/.local/lib/python/django/db/backends/mysql/base.py", line 14, in raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
当然,Bluehost的支持不是很有帮助。他们建议1)我使用默认的python安装,因为已经安装了MySQLdb。或者说2)我以某种方式从我的python中导入安装在默认python上的MySQLdb包(不知道是否可以这样做)。我担心如果我使用默认安装,我将无权安装我的其他软件包。
有没有人有任何想法如何恢复到工作状态,尽可能少的基础设施变化?
答案 0 :(得分:2)
我认为您升级了操作系统安装,而后者又升级了libmysqlclient
并破坏了原生扩展。您可以做的是重新安装libmysqlclient16
(如何操作取决于您的特定操作系统),这应该可以解决您的问题。
其他方法是卸载MySQLdb
模块并重新安装,强制python针对较新的库进行编译。
答案 1 :(得分:0)
你是对的。 Bluehost升级了MySQL。这是我做的: 1)删除“MySQL-python-1.2.3”目录中的“build”目录 2)取出鸡蛋 3)再次构建模块“python setup.py build” 4)再次安装模块“python setup.py install --prefix = $ HOME / .local”
故事的故事对我来说是在重新安装模块时删除旧的东西