source

Ubuntu 16.04로 업그레이드되어 MySQL-python 의존성이 끊어졌습니다.

ittop 2023. 10. 9. 23:34
반응형

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은 다음을 찾습니다.soUbuntu 16.04에서는 존재하지 않는 파일을 가지고 있습니다.libmysqlclient20설치된.그리고 libmysqlclient18은 사용할 수 없습니다.내가 아는 한(또는 적어도 나는) 파이썬 라이브러리가 최신 버전으로 최신 상태라고 생각합니다.

(달려보았습니다.pip install --upgrade mysql-python최신 상태임을 나타냅니다.

무슨 제안이라도 있으신가요?

Largaroth에게 감사드립니다.사용하는 경우mysqlclientUbuntu 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

저는 결국 제 문제에 대한 해결책을 찾았습니다.pip install --no-binary MySQL-python MySQL-python이 스레드에 명시된 바와 같이: Python's MySQLdb가 홈브루 MySQL로 libmysqlclient.dylib을 찾을 없습니다.

저도 같은 문제가 있었습니다.MySQL-python을 제거하고 다시 설치했습니다.

pip uninstall MySQL-python
pip install MySQL-python

스트레치로 업데이트할 때 이 문제가 있었습니다.그것을 고치기 위해 요구 사항을 업데이트 했습니다.txt:

mysqlclient==1.4.2.post1

따라서 수동으로 업데이트하거나 pip install --upgrade mysqlclient

문제는 예전 운영체제의 휠하우스를 사용하고 있다는 것이었습니다.

패키지를 제거/설치하거나 휠하우스를 업데이트하면 문제가 해결되었습니다.

문서에서:

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

즉, MySQLdb의 한 버전에 대해 컴파일된 MySQLdb 버전이 있으며, 이제 다른 버전에 대해 실행하려고 합니다.공유 라이브러리 버전은 주요 릴리스 간에 변경되는 경향이 있습니다.

해결책: MySQLdb를 재구축하거나, MySQL과 일치하는 버전을 가져옵니다.

단계:

  1. search mysql path

    어떤 mysql

    O/p : /opt/mysql/

  2. usr/lib에 대한 심볼릭 링크 생성

    sudoln -s /opt/ mysql/lib/mysqlclient.so .20/usr/lib

참고: mysqlclient.so .20은 귀하의 버전과 동일합니다.

python 3.6에 이 문제가 있었습니다.파이썬 3.5 환경을 사용했을 때는 잘 작동했습니다.

가상 환경에서 django 2.2.7과 Ubuntu 19.10을 사용하여 이 문제를 해결했습니다.

pip3 mysqlclient 제거

pip3 install mysqlclient

언급URL : https://stackoverflow.com/questions/36796167/upgraded-to-ubuntu-16-04-now-mysql-python-dependencies-are-broken

반응형