Python und lib-Pfade

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Errraddicator

Tach auch,
ich bin neu in Python und habe mal eine dumme Frage:

Ich habe Python 2.3.4 und Postgres 7.4.5. erfolgreich installiert.
Beides läuft an sich auch prima.
Jetzt will ich zusätzlich noch eine Pythonschnittstelle installieren um auf die Postgresdatenbank zu kommen.
Das installieren hat auch wunderbar funktioniert.
Ich hab ein neues Verzeichnis im "site-packages"-Ordner etc.
Allerdings wenn ich das mitgelieferte Testprogramm starten will, erscheint immer die Fehlermeldung, dass die Datei "libpq.so.3" nicht gefunden werden konnte.
Die Datei liegt aber im LIB-Verzeichniss von Postgres und diesen Pfad habe ich auch bei der Installation der Schnittstelle mit angegeben.

Ich hab sowohl PyPgSQL als auch Psycopg ausprobiert, beides mal das gleiche.
Installation -> ok
Ausführen -> schlecht

Was mache ich falsch?
Kann man irgendwo nachträglich einstellen wo Python nach Packages suchen soll?


Danke im Voraus

cu Errraddicator
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Ok, ich vermute mal du befindest dich unter Linux... In welchem Verzeichnis ist denn deine Postgresql Datenbank installiert, besser gesagt, wo liegt die libpq.so.3?

Scheint nämlich so, dass deine libpq.so.3 nicht in einem Pfad aus /etc/ld.so.conf und LD_LIBRARY_PATH vorhanden ist.

Sebastian
Errraddicator

also mein Python ist unter
/usr/local/python2.3.4/

und mein Postgres unter
/usr/local/pgsql

installiert.

ich probier das was du sagtest mal aus.
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Errraddicator hat geschrieben: und mein Postgres unter
/usr/local/pgsql
.
Das dachte ich mir nämlich. Damit liegen deine Postgresql includes nämlich in /usr/local/pgsql/include. Du musst den Pfad dann in die Datei /etc/ld.so.conf mit eintragen und danach einmal ldconfig ausführen, dann sollte es funktionieren...
btw, du hast die Postgre Datenbank von Hand kompiliert oder?

EDIT: !!! Hab mich vertan, du musst den Pfad /usr/local/pgsql/lib mit in die /etc/ld.so.conf aufnehmen, nicht den include Pfad... sorry :oops:

HTH

Sebastian
Zuletzt geändert von raist1314 am Mittwoch 15. Dezember 2004, 16:03, insgesamt 3-mal geändert.
Errraddicator

ja habe ich per hand kompiliert.
ich hab jetzt mal spasseshalber
export LD_LIBRARY_PATH="/usr/local/pgsql"
gemacht und dann hats auch funktioniert.

ich werds aber trotzdem mal in die von euch erwähnte datei schreiben.

danke schon mal für die prompte hilfe!

kommen wir gleich zur nächsten frage:
wo ist nochmal die datei in der ich die export-anweisungen eintragen muss damit die dauerhaft bleiben?
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Errraddicator hat geschrieben:ja habe ich per hand kompiliert.
ich hab jetzt mal spasseshalber
export LD_LIBRARY_PATH="/usr/local/pgsql"
gemacht und dann hats auch funktioniert.

kommen wir gleich zur nächsten frage:
wo ist nochmal die datei in der ich die export-anweisungen eintragen muss damit die dauerhaft bleiben?
Das hängt von deiner Shell ab, nimm den Pfad /usr/local/pgsql/lib am besten in die Datei /etc/ld.so.conf mit auf... einfach am Ende mit in die Datei schreiben(als root) und danach ldconfig ausführen(auch als root).

So funktioniert die Erweiterung gleich für alle Benutzer und niemand muss etwas an seinen .profile, .bash_profile, .cshrc, und wie sie alle heissen, ändern
:D

HTH

Sebastian
oenone
User
Beiträge: 75
Registriert: Mittwoch 27. August 2003, 14:39
Wohnort: 49°17'28N, 8°15'57E
Kontaktdaten:

du hast immer noch nicht dein Betriebssystem genannt...

ldconfig verhält sich auf anderen Betriebssystemen evtl. anders...

auf bald
oenone
if you don't remember something, it never happened.
if you aren't remembered, you never existed.
i don't quite understand what love is like... but if there was someone who liked me, i'd be happy.
Antworten