现在已升级到 Ubuntu 16.04 MySQL-python 依赖项已损坏
Upgraded to Ubuntu 16.04 now MySQL-python dependencies are broken
我刚刚将我的 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
表明它是最新的)。
大家有什么建议吗?
我最终找到了 pip install --no-binary MySQL-python MySQL-python
问题的解决方案
如本帖所述:
感谢拉加罗斯。如果您在 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
我遇到了同样的问题。我卸载并重新安装 MySQL-python:
pip uninstall MySQL-python
pip install MySQL-python
我的问题是我使用的是旧 OS 的舵手室。
当我 uninstalled/installed 包或更新 wheelhouse 时问题已解决...
来自文档:
http://mysql-python.sourceforge.net/FAQ.html#importerror
This means you have a version of MySQLdb compiled against one version of MySQL, and are now trying to run it against a different version. The shared library version tends to change between major releases.
Solution: Rebuilt MySQLdb, or get the matching version of MySQL.
我在使用 python 3.6 时遇到了这个问题...当我使用带有 Python 3.5 的环境时它工作得很好。
我在更新到 stretch 时遇到了这个问题。为了修复它,我更新了我的 requirements.txt:
mysqlclient==1.4.2.post1
所以要么手动更新要么 pip install --upgrade mysqlclient
我在我的虚拟环境中使用 django 2.2.7 和 Ubuntu 19.10 解决了这个问题:
pip3 uninstall mysqlclient
pip3 install mysqlclient
步骤:
搜索mysql路径
哪个mysql
O/p : /opt/mysql/
创建指向 usr/lib
的符号链接
sudo ln -s /opt/mysql/lib/mysqlclient.so.20 /usr/lib
注意:mysqlclient.so.20 将根据您的版本
我刚刚将我的 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
表明它是最新的)。
大家有什么建议吗?
我最终找到了 pip install --no-binary MySQL-python MySQL-python
问题的解决方案
如本帖所述:
感谢拉加罗斯。如果您在 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
我遇到了同样的问题。我卸载并重新安装 MySQL-python:
pip uninstall MySQL-python
pip install MySQL-python
我的问题是我使用的是旧 OS 的舵手室。
当我 uninstalled/installed 包或更新 wheelhouse 时问题已解决...
来自文档:
http://mysql-python.sourceforge.net/FAQ.html#importerror
This means you have a version of MySQLdb compiled against one version of MySQL, and are now trying to run it against a different version. The shared library version tends to change between major releases.
Solution: Rebuilt MySQLdb, or get the matching version of MySQL.
我在使用 python 3.6 时遇到了这个问题...当我使用带有 Python 3.5 的环境时它工作得很好。
我在更新到 stretch 时遇到了这个问题。为了修复它,我更新了我的 requirements.txt:
mysqlclient==1.4.2.post1
所以要么手动更新要么 pip install --upgrade mysqlclient
我在我的虚拟环境中使用 django 2.2.7 和 Ubuntu 19.10 解决了这个问题:
pip3 uninstall mysqlclient
pip3 install mysqlclient
步骤:
搜索mysql路径
哪个mysql
O/p : /opt/mysql/
创建指向 usr/lib
的符号链接sudo ln -s /opt/mysql/lib/mysqlclient.so.20 /usr/lib
注意:mysqlclient.so.20 将根据您的版本