2016-05-09 14 views
0

Ich habe ein sehr seltsames Problem, das ich nicht ganz herausfinden kann und hoffe, dass Sie alle können. Befolgen Sie die Schritte unter this link, ich habe den Oracle Instant Client und Cx_Oracle installiert, und ich kann Cx_Oracle in Python problemlos importieren. Ich habe all das in einem virtualenv getan.Django kann nicht cx_Oracle auf OS X importieren, obwohl Python kann

Das Problem ist, wenn ich

./manage.py runserver 

versuche ich

raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading cx_Oracle module: 
dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so, 
2): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so 
Reason: image not found 

Natürlich bekommen, das ist genau das, wo die cx_Oracle.so Datei vorhanden ist.

So habe ich gesucht und gefunden this SO question, aber Ausführen des Ruby-Skript bricht tatsächlich meine cx_Oracle-Import in Python, und löst das Problem Django nicht. Stattdessen gibt es den folgenden Fehler, ob in Python direkt oder in der Django-Umgebung. Wie behebe ich das? Ich muss cx_Oracle in django importieren können! Vielen Dank!

ImportError: dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so, 
2): Library not loaded: /Users/Shawn/Oracle/instantclient_11_2/ 
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so 
Reason: no suitable image found. Did find: 
/Users/Shawn/Oracle/instantclient_11_2/: not a file 
/Users/Shawn/Oracle/instantclient_11_2/: not a file 
/usr/local/lib/: not a file 
/usr/lib/: not a file 

EDIT: Ich wischte und meine virtualenv neu erstellt. Ich habe dann das Ruby-Skript wiederholt, nachdem ich festgestellt habe, dass ich es nicht im selben Verzeichnis wie die ausführbaren Dateien des Instant-Clients ausgeführt habe. Es lief und aktualisiert von

@executable_path/... 
to 
/Users/shawn/Oracle/... 

ich cx_Oracle in meinem virtualenv Python versucht, den Import und dieses Mal ist es arbeitete statt einen Fehler zu werfen. Leider bläst versucht, meinen django-Server läuft noch

Raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading cx_Oracle module: dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so, 2): Library not loaded: libclntsh.dylib.11.1 
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so 
Reason: image not found 

sagen, bis ich kann nicht verstehen, warum Python importieren kann, aber django kann es nicht.

+0

Führen Sie Python ** aus Ihrer virtuellen Umgebung **, wo Sie Cx_Oracle installiert haben? – hd1

+0

Ja. Es importiert cx_Oracle fein – Shawn

Antwort

1

Folgen Sie den Anweisungen am Ende dieser Seite die Installation des Oracle Instant-Client zu tun:

http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html

Sie müssen unter Umständen auch DYLD_LIBRARY_PATH einstellen oder Dinge einstellen -L und install_name_tool mit otool.

+0

Ich versuchte diese Anweisungen, die identisch waren mit dem, was ich tat, außer für den zusätzlichen Teil über ~/lib. Keine Freude. Das in meiner Frage erwähnte Ruby-Skript passt die Dinge mit otool -L und install_name_tool an. Trotzdem danke. – Shawn

+0

Gern geschehen. Ich bin kein Mac-Experte, aber ich habe Zugang zu einem Mac und kann diese Schritte selbst ausprobieren. Ich bin auch mit Django vertraut und werde Sie wissen lassen, ob ich replizieren kann. –