2016-04-22 23 views
18

Tôi vừa nâng cấp cài đặt Ubuntu lên 16.04 và điều này dường như đã phá vỡ các phụ thuộc mysql trong gói MySQL-python.Nâng cấp lên Ubuntu 16.04 bây giờ các phụ thuộc MySQL-python bị hỏng

Dưới đây là thông báo lỗi của tôi:

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 

Vì vậy, về cơ bản import_mysql đang tìm kiếm một tập tin so rằng không tồn tại bởi vì trong Ubuntu 16.04, tôi có libmysqlclient20 cài đặt. Và libmysqlclient18 không khả dụng. Theo như tôi biết (hoặc ít nhất tôi tin) thư viện python của tôi được cập nhật với các phiên bản mới nhất.

(Tôi đã thử chạy pip install --upgrade mysql-python cho biết đã cập nhật).

Các bạn có bất kỳ đề xuất nào không?

+0

Tạo một môi trường ảo mới từ tập tin requirements.txt của bạn . Nếu bạn không có bất kỳ: 'pip freeze> requirements.txt'. –

+1

Tôi nhận được lỗi tương tự như trước đây, tôi sợ – RyanH

Trả lời

22

tôi đã kết thúc việc tìm kiếm giải pháp cho vấn đề của tôi với pip install --no-binary MySQL-python MySQL-python như đã nêu trong chủ đề này: Python's MySQLdb can’t find libmysqlclient.dylib with Homebrewed MySQL

+0

Chúc tôi có thể upvote điều này nhiều hơn một lần. Trong tuần qua tôi đã gặp phải vấn đề này nhiều lần. Câu trả lời không phải là quá dễ dàng để tìm thấy không may. – Bono

+0

Đối với những người vấp ngã khi nhấn vào một tùy chọn 'no such: --no-binary': đảm bảo nâng cấp phiên bản pip của bạn trước tiên! – ShaneOH

+0

Cảm ơn người đàn ông. Upvote. – Addinall

24

Thank cho Largaroth. Nếu bạn sử dụng mysqlclient trên Ubuntu 16.04 và có lỗi: ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

Bạn có thể sửa chữa:

sudo -H pip uninstall mysqlclient 

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

Điều này chỉ đơn giản là làm việc cho tôi. –

+0

hoạt động hoàn hảo cho 'oursql' cũng vậy, nhờ – Olexandr

+1

" MySQL-python "đã được báo cáo là đã được cài đặt, vì vậy * câu trả lời * này là câu trả lời đúng. –

3

tôi đã cùng một vấn đề. Tôi đã gỡ cài đặt và cài đặt lại MySQL-python:

pip uninstall MySQL-python 
pip install MySQL-python 
1

Vấn đề của tôi là tôi đang sử dụng buồng lái từ hệ điều hành cũ.

Vấn đề đã được giải quyết khi tôi gỡ bỏ cài đặt/cài đặt gói cập nhật hoặc buồng lái ...

Từ tài liệu:

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.

Các vấn đề liên quan