當前位置: 首頁>>技術教程>>正文


現在已升級到Ubuntu 16.04,MySQL-python依賴關係已損壞

, , , ,

問題描述

我剛剛將Ubuntu安裝升級到16.04,這似乎已經破壞了MySQL-python軟件包中的mysql依賴關係。

這是我的錯誤信息:

  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 386, in create_engine
return strategy.create(*args, **kwargs)
  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 75, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/opt/monitorenv/local/lib/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 92, in dbapi
return __import__('MySQLdb')
  File "/opt/monitorenv/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

所以基本上,import_mysql正在尋找一個不存在的so文件,因為在Ubuntu 16.04中,我安裝了libmysqlclient20。而且libmysqlclient18不可用。據我所知(或至少我相信),我的python庫是最新版本。

(我嘗試運行pip install --upgrade mysql-python,這表明它是最新的)。

你們有什麽建議嗎?

最佳方法

感謝Largaroth。如果在Ubuntu 16.04上使用mysqlclient並出現錯誤:
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

您可以解決:

sudo -H pip uninstall mysqlclient

sudo -H pip install --no-binary mysqlclient mysqlclient

次佳方法

如該線程所述,我最終找到了解決pip install --no-binary MySQL-python MySQL-python問題的解決方案:Python’s MySQLdb can’t find libmysqlclient.dylib with Homebrewed MySQL

第三種方法

我遇到過同樣的問題。我卸載並重新安裝了MySQL-python:

pip uninstall MySQL-python
pip install MySQL-python

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/8397.html,未經允許,請勿轉載。