2016-04-22 10 views
18

Właśnie zaktualizowałem moją instalację Ubuntu do 16.04 i wygląda na to, że spowodowało to zerwanie moich zależności mysql w pakiecie MySQL-python.Uaktualniono do wersji Ubuntu 16.04 teraz zależności MySQL-python są zepsute

Oto mój komunikat o błędzie:

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 

Więc w zasadzie import_mysql szuka pliku so, który nie istnieje, bo w Ubuntu 16.04, mam libmysqlclient20 zainstalowany. I libmysqlclient18 jest niedostępny. O ile mi wiadomo (lub przynajmniej wierzę), moje biblioteki Pythona są na bieżąco z najnowszymi wersjami.

(Próbowałem uruchomić pip install --upgrade mysql-python, co oznacza, że ​​był aktualny).

Czy macie jakieś sugestie?

+0

Tworzenie nowego wirtualnego środowiska z pliku requirements.txt . Jeśli nie masz żadnych: 'pip freeze> requirements.txt'. –

+1

Otrzymuję ten sam błąd co wcześniej, obawiam się – RyanH

Odpowiedz

22

skończyło się znalezieniem rozwiązania moich problemów z pip install --no-binary MySQL-python MySQL-python jak stwierdzono w tym wątku: Python's MySQLdb can’t find libmysqlclient.dylib with Homebrewed MySQL

+0

Chciałbym móc to powtórzyć więcej niż raz. W ubiegłym tygodniu wielokrotnie natknąłem się na ten problem. Odpowiedź nie jest łatwa do znalezienia niestety. – Bono

+0

Dla osób potykających się przy trafianiu opcji "brak takiej opcji: --no-binary' error: upewnij się, że najpierw uaktualnisz swoją wersję pip! – ShaneOH

+0

Dzięki człowieku. Awansuj. – Addinall

24

podziękować za Largaroth. Jeśli używasz mysqlclient na Ubuntu 16.04 i mam błąd: ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

można naprawić:

sudo -H pip uninstall mysqlclient 

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

To po prostu działa dla mnie. –

+0

działa również doskonale dla 'oursql', dzięki – Olexandr

+1

" MySQL-python "został zgłoszony jako już zainstalowany, więc * ta * odpowiedź była tym, który naprawił problem. –

3

miałem ten sam problem. Odinstalowałem i ponownie zainstalowałem MySQL-python:

pip uninstall MySQL-python 
pip install MySQL-python 
1

Moim problemem było to, że używałem sterówki ze starego systemu operacyjnego.

Problem został rozwiązany, kiedy odinstalować/zainstalować pakiet lub zaktualizowane sterówki ...

Od docs:

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.

Powiązane problemy