Thư viện không được tải rpath libmysqlclient 21 dylib

Thư viện không được tải rpath libmysqlclient 21 dylib

Miikey Aho

Làm theo

28 tháng 8 năm 2020

·

1 phút đọc

Lỗi ghost khi cài đặt diesel_cli trên MacOS

…DIESEL TÔI GHÉT CẬU…

Hôm nay khi cài Rust ORM framework. dầu diesel. xảy ra một số lỗi ma

hãy để tôi tìm hầu hết tài nguyên để sửa nó, vì vậy tôi lưu ý trường hợp giải quyết

bạn cần cài đặt máy khách mysql hoặc mysql-connector-c

RUSTFLAGS=”-L/usr/local/mysql/lib” cài đặt hàng hóa diesel_cli — tính năng không mặc định — tính năng mysql

lỗi thứ hai

$ động cơ diesel -V
chết tiệt. Thư viện không được tải. @rpath/libmysqlclient. 21. dylib
Tham khảo từ. /Người dùng/james/. hàng hóa/bin/diesel
Lý do. hình ảnh không tìm thấy
hủy bỏ bẫy. 6

Bạn cần đặt liên kết lib như thế này

Sudo ln -s /usr/local/mysql/lib/libmysqlclient. 21. dylib/usr/local/lib/libmysqlclient. 21. dylib

Sudo ln -s /usr/local/mysql/lib/libmysqlclient. dylib/usr/local/lib/libmysqlclient. dylib

khi tôi sử dụng cách này. cài đặt xong


  • MAC 上 安装 MySQL
  • Python3 安装 MySQLdb 并 import,出现报错Library not loaded: libmysqlclient.21.dylib
➜  ~ pip3 install mysql-connector-python
➜  ~ pip3 install mysqlclient
➜  ~ python3 -c 'import MySQLdb'
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in 
    from . import _mysql
ImportError: dlopen(/usr/local/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
  Referenced from: /usr/local/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
  Reason: image not found

➜  lib git:(master) ✗ pwd
/usr/local/mysql/lib
➜  lib git:(master) ✗ ls
libcrypto.1.1.dylib          libmysqlclient.dylib         libprotobuf.3.6.1.dylib      mecab
libcrypto.dylib              libmysqlservices.a           libprotobuf.dylib            pkgconfig
libmysqlclient.21.dylib      libprotobuf-lite.3.6.1.dylib libssl.1.1.dylib             plugin
libmysqlclient.a             libprotobuf-lite.dylib       libssl.dylib
➜  sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient.21.dylib 
Password:
➜  sudo ln -s /usr/local/mysql/lib/libssl.1.1.dylib /usr/lib/libssl.1.1.dylib
➜  sudo ln -s /usr/local/mysql/lib/libcrypto.1.1.dylib /usr/lib/libcrypto.1.1.dylib
  • 执行```python3 -c 'import MySQLdb' 无报错,问题解决
➜  ~ python3 -c "import MySQLdb"                                                     
➜  ~
➜ ~ pip3 cài đặt mysql-connector-python ➜ ~ pip3 cài đặt mysqlclient ➜ ~ python3 -c 'nhập MySQLdb' Traceback (lần gọi gần đây nhất). Tệp "", dòng 1, inFile "/usr/local/lib/python3. 7/site-gói/MySQLdb/__init__. py", dòng 18, từ. nhập _mysql ImportError. dlopen(/usr/local/lib/python3. 7/site-gói/MySQLdb/_mysql. cpython-37m-darwin. vì vậy, 2). Thư viện không được tải. @rpath/libmysqlclient. 21. dylib Được tham khảo từ. /usr/local/lib/python3. 7/site-gói/MySQLdb/_mysql. cpython-37m-darwin. vì vậy lý do. hình ảnh không tìm thấy


Dường như có một số vấn đề với người dùng macOS Mojave và Catalina khi cố gắng kết nối dự án Django với cơ sở dữ liệu MySQL

ImportError: dlopen(..._mysql.cpython-38-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
  Referenced from: .../site-packages/_mysql.cpython-38-darwin.so
  Reason: image not found
NameError: name '_mysql' is not defined

Python dường như không thể giải quyết đường dẫn đến libmysqlclient. 21. dylib . Một giải pháp là tạo một liên kết tượng trưng tới libmysqlclient. 21. dylib trong /usr/local/lib/ hoặc /usr/ . Bạn có thể làm như vậy bằng cách chạy cái này trong Terminal. . You can do so by running this in Terminal:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/local/lib/libmysqlclient.21.dylib

Nhưng điều này dường như không phải lúc nào cũng hiệu quả. Một giải pháp khác là thay đổi đường dẫn thành libmysqlclient. 21. dylib được chỉ định trong _mysql. cpython-38-darwin. so (có thể là 37 hoặc một số khác tùy thuộc vào phiên bản Python của bạn). Thay đổi nó thành một đường dẫn tuyệt đối trỏ đến   /usr/local/mysql/lib/libmysqlclient. 21. dylib .

_mysql. cpython-38-darwin. vì vậy có thể được tìm thấy trong thư mục MySQLdb trong gói trang web. Bạn có thể sử dụng một số công cụ dòng lệnh Xcode để sửa lỗi này. Mở cửa sổ terminal trong thư mục chứa _mysql. cpython-38-darwin. so và thực hiện như sau.

Để kiểm tra đường dẫn
otool -L _mysql.cpython-38-darwin.so

Đó là đường dẫn tương đối có vẻ có vấn đề. Lệnh trên sẽ xuất ra một cái gì đó như thế này
_mysql.cpython-38-darwin.so:
    @rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0)

Thay đổi đường dẫn tương đối thành tuyệt đối bằng cách chạy cái này
________số 8_______