web-dev-qa-db-ja.com

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は、Ubuntu 16.04にlibmysqlclient20がインストールされているために存在しないsoファイルを探しています。また、libmysqlclient18は使用できません。私が知っている限り(または少なくとも私は信じています)、私のpythonライブラリは最新バージョンで最新です。

pip install --upgrade mysql-pythonを実行してみましたが、これは最新であることを示しています)。

何か提案はありますか?

23
RyanH

このスレッドで述べられているpip install --no-binary MySQL-python MySQL-pythonの問題の解決策を見つけることになりました: PythonのMySQLdbはHomebrewed MySQLでlibmysqlclient.dylibを見つけることができません

24
RyanH

ラルガロスに感謝します。 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
33
Cuong Tran

同じ問題がありました。 MySQL-pythonをアンインストールして再インストールしました。

pip uninstall MySQL-python
pip install MySQL-python
5
Warren O'Neill

私の問題は、古いOSのホイールハウスを使用していたことです。

パッケージをアンインストール/インストールするか、ホイールハウスを更新すると、問題は解決しました...

ドキュメントから:

http://mysql-python.sourceforge.net/FAQ.html#importerror

これは、MySQLの1つのバージョンに対してコンパイルされたMySQLdbのバージョンがあり、それを別のバージョンに対して実行しようとしていることを意味します。共有ライブラリのバージョンは、メジャーリリース間で変更される傾向があります。

解決策:MySQLdbを再構築するか、対応するバージョンのMySQLを取得します。

1
confiq

python 3.6でこの問題が発生しました... Python 3.5で環境を使用した場合、問題なく動作しました。

0
Kyle

ストレッチに更新するときにこの問題が発生しました。修正するには、requirements.txtを更新しました。

mysqlclient == 1.4.2.post1

手動で更新するか、pip install --upgrade mysqlclient

0
Mark