升级到Ubuntu 16.04现在MySQL-python依赖性被打破了

Rya*_*anH 24 python mysql ubuntu pip ubuntu-16.04

我刚刚将我的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
Run Code Online (Sandbox Code Playgroud)

所以基本上import_mysql正在寻找一个so不存在的文件,因为在Ubuntu 16.04中,我已经libmysqlclient20安装了.并且libmysqlclient18不可用.据我所知(或者至少我相信)我的python库是最新的版本.

(我试过跑步pip install --upgrade mysql-python,表明它是最新的).

你们有什么建议吗?

Cuo*_*ran 36

感谢Largaroth.如果你mysqlclient在Ubuntu 16.04上使用并有错误: 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
Run Code Online (Sandbox Code Playgroud)

  • “MySQL-python”被报告为已安装,因此*这个*答案是纠正问题的答案。 (2认同)

Rya*_*anH 25

我最终找到了我的问题的解决方案,pip install --no-binary MySQL-python MySQL-python 正如在这个帖子中所述:Python的MySQLdb找不到带有自制MySQL的libmysqlclient.dylib


小智 6

我遇到过同样的问题.我卸载并重新安装了MySQL-python:

pip uninstall MySQL-python
pip install MySQL-python
Run Code Online (Sandbox Code Playgroud)