Problem nach Modul-Installation

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
glareanus
User
Beiträge: 5
Registriert: Montag 17. Juli 2023, 19:55

Hallo,

ich bin noch recht frisch bei Python, aber Probleme macht mir gerade nicht die Progammierung, sondern die Installation eines Paketes:
Am besten für meine Zwecke geeignet ist wohl marcxml_parser. Da das Modul schon was älter ist und ich Python3 habe, habe ich das Modul mit pip aus diesem Repository installiert:

https://github.com/axiell-pcg/marcxml_parser

Die Installation läuft auch glatt durch, allerdings bricht jedes Script, in das das Modul importiert wird (auch, wenn es das einzige ist und kein Code mehr folgt) mit der Fehlermeldung ab:

T

Code: Alles auswählen

raceback (most recent call last):
  File "<stdin>", line 1, in <module>
...
File " ... /lib/python3.8/site-packages/marcxml_parser/structures/__init__.py", line 7, in <module>
    from person import Person
ModuleNotFoundError: No module named 'person'
Ich kann nicht nachvollziehen, was hier schief läuft, denn die "person.py" gibt es. Hat jemand einen Tipp für mich?

Besten Dank und viele Grüße

Parzival
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@glareanus: Diese Art von relativem Import funktioniert nicht mehr in Python 3. Es gibt kein `person`-Modul oder Package. Das heisst `marcxml_parser.structures.person`.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
glareanus
User
Beiträge: 5
Registriert: Montag 17. Juli 2023, 19:55

Hallo und besten Dank für die rasche Antwort!

ich werde dann wohl mal versuchen, eine ältere Python-Version parallel zu installieren - mit allem anderen wäre ich ziemlich überfordert...

Viele Grüße

G.
Benutzeravatar
grubenfox
User
Beiträge: 612
Registriert: Freitag 2. Dezember 2022, 15:49

Wenn das man gut geht... ich nutze dafür pyenv.

Zwei Links zum Thema. Zum zweiten Links unter Windows kann ich nichts sagen, habe hier Linux im Einsatz.
https://realpython.com/intro-to-pyenv/
https://pyenv-win.github.io/pyenv-win/
glareanus
User
Beiträge: 5
Registriert: Montag 17. Juli 2023, 19:55

Hallo,
danke für die Warnung! Ich musste nicht viel nachlesen, um zu kapieren, was Du meinst. Also hab' ich das mit der älteren Python-Version mal lieber bleiben lassen. Sollte ich nochmal auf so ein Problem stoßen, wäre pyenv für mich sicher die erste Wahl.

Bei marcxml_parser war es glücklicherweise so, dass sich das Modul recht leicht anpassen lässt, wenn man allen Fehlermeldungen bei der Installation nachgeht. Ob das jetzt auf die Dauer gut geht, weiß ich noch nicht, aber im Moment macht das Ding, was es soll.

Nochmal vielen Dank für die rasche Unterstützung!
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

glareanus hat geschrieben: Freitag 4. August 2023, 14:45 Ob das jetzt auf die Dauer gut geht, weiß ich noch nicht, aber im Moment macht das Ding, was es soll.
Die gängige Python-Bibliothek zur Verarbeitung von MARC und MARC-XML ist m.W.n. https://pypi.org/project/pymarc/ (wenn man denn überhaupt eine Library nimmt und es nicht einfach wie normales XML verarbeitet). Wenn deine Daten eine etwas andere Form haben, kannst du sie mit ein paar Zeilen XSLT oder Python vor-verarbeiten und in die richtige Form bringen.
glareanus
User
Beiträge: 5
Registriert: Montag 17. Juli 2023, 19:55

pymarc hatte ich mir auch angesehen, nur schien es mir mit marcxml_parser einfacher, mit Daten zu arbeiten, die über die OAI-PMH-Schnittstelle bezogen wurden, oder die - ohne sie vorher in einer Datei zu speichern - über die SRU-Schnittstelle kommen.
glareanus
User
Beiträge: 5
Registriert: Montag 17. Juli 2023, 19:55

Hallo nochmal,
um das Thema hier abzuschließen (obwohl damit eigentlich off topic): mir hat die Sache keine Ruhe gelassen und ich habe mir den Tipp von nezzcarth nochmal genau angesehen. Schlussendlich habe ich es genau so gemacht: ich hole die Daten über die Schnittstelle, passe sie mit xslt an (ein ähnliches xsl-Script hatte ich noch vorrätig) und greife dann mit pymarc auf die Marc-Felder zu.
Dadurch ist das Script zwar etwas länger geworden, aber der Zugriff auf die verschiedenen (z.T. wiederholbaren) Felder und/oder Unterfelder ist in Pymarc doch etwas komfortabler, wenn man sich mal genauer damit auseinandergesetzt hat.

Vielen Dank für Eure Kommentare!

Glareanus
Antworten