Tôi đã thử cách trên và gặp lỗi sau khi cố gắng cài đặt cx_Oracle bằng Oracle Instantclient 12.1 :
[535]: /opt/instantclient_12_1 $ python -c "import cx_Oracle"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so, 2):
Library not loaded: @rpath/libclntsh.dylib.12.1
Referenced from: /Library/Python/2.7/site-packages/cx_Oracle.so
Reason: image not found
Lưu ý đến @rpath do lỗi - hóa ra là khi xây dựng thư viện cx_Oracle (dành cho Instantclient 12.1) trên El Capitan, trình biên dịch gcc mong đợi cờ -rpath được đặt để biết nơi tìm các thư viện được liên kết động nói trên (* .dylib). Theo mặc định, trên Instantclient 12.1, pip không làm điều này cho bạn.
# Set -rpath option before installing...this will use $ORACLE_HOME during compilation
export FORCE_RPATH=TRUE
pip install cx_Oracle
# And verify cx_Oracle was correctly installed
python -c "import cx_Oracle"
# If this line fails install cx_Oracle with:
# pip install --no-cache-dir --allow-external --allow-unverified cx_oracle
python -c "import cx_Oracle"
sẽ không báo lỗi.
Để có hướng dẫn cài đặt đầy đủ (bao gồm tải xuống và cấu hình tức thì), hãy xem bài đăng của tôi tại http://thelazestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac để biết chi tiết.