Module plötzlich verschwunden

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
reneschmidt
User
Beiträge: 48
Registriert: Montag 4. Januar 2016, 15:14

Hallo zusammen,

ich habe ein seltsames Problem:

Ich möchte eine Entgeldabrechnung mit Python generieren. Das Script war auch eigentlich soweit fast fertig, hatte nur noch ein paar Änderungen am Layout zu machen und plötzlich läuft das Script nicht mehr. Ich erhalte nur noch folgende Fehlermeldung:

Code: Alles auswählen

./wf.py
Traceback (most recent call last):
  File "./wf.py", line 8, in <module>
    import os, shutil, datetime, MySQLdb, statvfs
ImportError: No module named 'MySQLdb'
Das Script wird auf einem Ubuntu Server ausgeführt auf dem Python 2.7 und 3.4 installiert sind.

Kurz zum Ablauf des Scripts:
Das Script greift in meine MySQLDB des ERP Systems, in der unter anderem auch die Zeiten erfasst sind. Dann generiert das Script mit ReportLab eine PDF Datei. Anschließend wird eine Überweisung mit den Gehältern an die Fibu übergeben, die das dann nur noch Freigaben müssen.

Evtl. Hilfreich: Wenn ich MySQLdb rausnehme (zum testen) bleibt er bei statvfs mit der selben Fehlermeldung hängen. Wenn ich ein anderes Script ausführe in dem ich auch in eine MySQL DB greife funktioniert das...

Ich habe das python-mysqldb bereits neuinstalliert, leider ohne Erfolg.

Könnt Ihr mir weiter helfen?

Viele Dank im voraus!
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie sieht denn das shebang aus?

Und was gibt

Code: Alles auswählen

import sys
import pprint
pprint.pprint(sys.path)
aus? Im Skript eingefuegt am besten, um den gleichen Interpreter zu nutzen, und vor den importen.
reneschmidt
User
Beiträge: 48
Registriert: Montag 4. Januar 2016, 15:14

Das sind die ersten Zeilen:

Code: Alles auswählen

#!/usr/bin/env python3
#
#wf.py        Version 1 10.05.2016

Der Code gibt:

Code: Alles auswählen

['/srv/python/auswertung/',
 '/usr/lib/python3.4',
 '/usr/lib/python3.4/plat-x86_64-linux-gnu',
 '/usr/lib/python3.4/lib-dyload',
 '/usr/local/lib/python3.4/disk-packages',
 '/usr/lib/python3/disk-packages']
Kann es am Zeichensatz liegen? die anderen Scripte sind in ANSI geschrieben, das was nicht funktioniert ist in UTF-8
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@reneschmidt: Du versuchst hier ein Python2 Skript mit Python3 zu starten. MySQLdb und statvfs gibt es auch für Python3 erst gar nicht und statvfs ist für Python2.7 deprecated.
reneschmidt
User
Beiträge: 48
Registriert: Montag 4. Januar 2016, 15:14

Danke!!!!! :?
Antworten