Seite 1 von 1

Problem mit pypgsql

Verfasst: Donnerstag 7. September 2006, 13:10
von ragazzomusic
Hallo Allerseits,

folgendes Problem:

Ich habe python-pypgsql 2.5.1 auf openSuSE 10.0 (Guru-Paketquelle) installiert und möchte nun ein Inst.-Skript ausführen - das gibt mir jedoch jedesmal diese Fehlermeldung aus:
  • buero2:/tmp/lx-kasse/erpkasse # ./erpkonfig -new
    You need to install pyPgSQL
    Traceback (most recent call last):
    File "erpkonfig.py", line 18, in <module>
    NameError: name 'sys' is not defined
pypgsql ist jedoch installiert! Woran kann es denn liegen?
Offensichtlich wir pypgsql nicht gefunden...
Kann es daran liegen, das das installierte OS auf i586 aufbaut und die Pakete von guru auf i686 optimiert sind?

Hat jemand einen Tipp für mich?

Danke!

Re: Problem mit pypgsql

Verfasst: Donnerstag 7. September 2006, 13:55
von Leonidas
ragazzomusic hat geschrieben:pypgsql ist jedoch installiert! Woran kann es denn liegen?
Offensichtlich wir pypgsql nicht gefunden...
Ne. Der Name sys wird nicht gefunden. Füge einfach

Code: Alles auswählen

import sys
in die Datei erpkonfig.py, recht weit oben ein.
ragazzomusic hat geschrieben:Kann es daran liegen, das das installierte OS auf i586 aufbaut und die Pakete von guru auf i686 optimiert sind?
Ne, das hat damit nichts zu tun. Es ist ein Fehler in erpkonfig.py.

Verfasst: Donnerstag 7. September 2006, 15:43
von ragazzomusic
Hallo Leonidas,

Danke für Deinen Tipp!

Sorry, aber ich hatte mit Python bisher sogut wie nichts zu tun - wie füge ich die Zeile denn ein? :lol:

Es gibt eine "erpkonfig" die ich ganz normal bearbeiten kann und die sieht so aus:

Code: Alles auswählen

#!/bin/bash
python ./erpkonfig.pyc $1
Doch die ist sicher nicht gemeint und es funktioniert auch nicht.

Dann gibt es nur noch die "erpkonfig.pyc" - die ist jedoch binär und ich weiß nicht wie ich reinschreiben kann.

Grüsse
Ivan

Verfasst: Donnerstag 7. September 2006, 16:56
von BlackJack
Dann solltest Du Dich an den Hersteller dieser Datei wenden.

Verfasst: Freitag 8. September 2006, 09:01
von Leonidas
BlackJack hat recht, die erpkonfig (also das Shell-Skript) ruft ein vorkompiliertes Python-File auf, welches dadurch, dass es binär ist nicht editierbar ist (ok, mir würde im äußersten Fall noch Monkey-Patching einfallen, das man versuchen könnte). Der Fehler liegt aber auf jeden Fall in dieser Datei und nicht an deiner pypgsql-Installation. Ob deine pypgsql-Installation richtig funktioniert, kann man an dieser Stelle aber noch nicht abschätzen, da der Fehler viel früher auftritt.

Verfasst: Freitag 8. September 2006, 09:30
von ragazzomusic
OK, Danke für Eure Antworten - werde mich mal an den Hersteller wenden!

Grüsse
Ivan

Verfasst: Freitag 8. September 2006, 10:02
von mitsuhiko
So ginge es:

Code: Alles auswählen

#!/usr/bin/env python
import sys
ns = {'sys': sys}
execfile('erpkonfig.pyc', ns)
:wink:

Verfasst: Freitag 8. September 2006, 11:12
von Leonidas
blackbird hat geschrieben:So ginge es
Nur wenn der Hersteller vergisst sys zu importieren, dann wird der Rest des Codes warscheinlich auch nicht besser sein. Es ist ja warscheinlich nicht ragazzomusics Aufgabe, die Fehler des Herstellers zu korrigieren.

Verfasst: Freitag 8. September 2006, 12:47
von ragazzomusic
Hallo,

Danke für Euer zahlreiches Feedback!

Habe den Hersteller/Programmierer kontaktiert und Ihm das mit dem "import sys" mitgeteilt.
Er hat es umgehend verändert bzw. "import sys" an den Anfang des Skriptes gestellt und die Fehlermeldungen sind nun alle weg - bis auf eine:

You need to install pyPgSQL

Das ist aber installiert! Ich habe mir jetzt auch die Version 2.4.1 passend zur SuSE-Version installiert.
Laut Ausage des Herstellers mach SuSE vieles anders - habe ich auch schon mitbekommen - aber es muß doch laufen :cry:

Im Pfad /usr/lib/python2.4/site-packages/pyPgSQL/ dem Suchpfad des Skriptes, sind auch Dateien abgelegt.

Muß ich vielleicht noch etwas unter Python (re-)initialisieren?

Grüsse
Ivan

Verfasst: Freitag 8. September 2006, 13:15
von Leonidas
ragazzomusic hat geschrieben:You need to install pyPgSQL

Das ist aber installiert! Ich habe mir jetzt auch die Version 2.4.1 passend zur SuSE-Version installiert.
Laut Ausage des Herstellers mach SuSE vieles anders - habe ich auch schon mitbekommen - aber es muß doch laufen :cry:
Wenn ein

Code: Alles auswählen

import pyPgSQL
im interaktiven Interpreter funktioniert, dann sollte pyPgSQL korrekt installiert sein. Das wird wohl wieder ein Fehler im Konfig-Skript sein. Wäre interessant zu wissen, wie das Skrpt herausfindet ob PyPgSQL installiert ist, so wäre es viel einfacher herauszufinden, warum das Skript dies meint.

Verfasst: Sonntag 10. September 2006, 10:48
von ragazzomusic
Leonidas hat geschrieben: Wenn ein

Code: Alles auswählen

import pyPgSQL
im interaktiven Interpreter funktioniert, dann sollte pyPgSQL korrekt installiert sein. Das wird wohl wieder ein Fehler im Konfig-Skript sein. Wäre interessant zu wissen, wie das Skrpt herausfindet ob PyPgSQL installiert ist, so wäre es viel einfacher herauszufinden, warum das Skript dies meint.
Hallo Leonidas,

ja da gebe ich Dir recht - wenn man wüßte wie das Skript arbeitet, wäre es leichter den Fehler zu finden :(

Wenn ich "import pyPgSQL" ausführe, dann verwandelt sich der Cursor in ein Fadenkreuz, aber mehr tut sich leider nicht - ich klicke 2 mal mit der Maus und es erscheint wieder die übliche Fehlermeldung: "You need to install ...."

Ich teste die Installation mal auf einem anderen OS - dann kann ich sicherstellen, das es nicht an SUSE liegt, wie der Hersteller angibt.

Melde mich dann wieder - vielen Dank schon mal an Euch alle!

Grüsse
Ivan

Verfasst: Sonntag 10. September 2006, 12:41
von BlackJack
ragazzomusic hat geschrieben:Wenn ich "import pyPgSQL" ausführe, dann verwandelt sich der Cursor in ein Fadenkreuz, aber mehr tut sich leider nicht - ich klicke 2 mal mit der Maus und es erscheint wieder die übliche Fehlermeldung: "You need to install ...."
Das darfst Du nicht in der Shell ausführen, da startest Du das Programm `import` von `ImageMagick` das einen Screenshot macht. :-)

Wenn Du wissen willst ob das Python-Modul grundsätzlich richtig geladen werden kann, dann musst Du das im Python-Inteptertierer eingeben:

Code: Alles auswählen

marc@s8n:~$ python
Python 2.4.3 (#2, Apr 27 2006, 14:43:58)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyPgSQL.PgSQL
>>>
Bei mir geht's also ohne Fehlermeldungen.