Seite 1 von 1
Cygwin - eyeD3 (utf-8)
Verfasst: Dienstag 29. Januar 2008, 13:12
von alpine
hallo,
im cygwin rufe ich das eyed3 (id3 tag editor) programm auf und übergebe utf8 kodiertere parameter.
jedoch kommt eine fehlermeldung:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)
muss ich python noch für utf8 konfigurieren?
wenn ja, dann sagt mir bitte wie.
Re: Cygwin - eyeD3 (utf-8)
Verfasst: Dienstag 29. Januar 2008, 14:00
von gerold
alpine hat geschrieben:im cygwin rufe ich das eyed3 (id3 tag editor) programm auf und übergebe utf8 kodiertere parameter.
Hallo alpine!
Hast du auch den Parameter ``--set-encoding=utf8`` mit angegeben?
mfg
Gerold

Verfasst: Dienstag 29. Januar 2008, 14:20
von alpine
ja klar
Verfasst: Dienstag 29. Januar 2008, 14:27
von Hyperion
Wo genau tritt denn der Fehler auf? Evtl. ist ein String intern falsch codiert? Poste ggf. doch mal den Code drum herum!
Verfasst: Dienstag 29. Januar 2008, 14:40
von gerold
Hallo alpine!
In der Standardeinstellung kann Cygwin mit Umlauten nicht umgehen. Was erkennt das in Cygwin vorhandene Python als Standardencoding?
Code: Alles auswählen
Gerold@gp-work ~
$ python
Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.getdefaultlocale()
(None, None)
>>> locale.getpreferredencoding()
'US-ASCII'
>>>
So wie hier wäre es mir unmöglich, Umlaute per Kommandozeile zu übergeben. Nur über eine Pipe (|) von einem anderen Programm...
Und wenn du das Programm von Windows aus aufrufst, dann ist das Encoding "cp1252" oder "cp850".
mfg
Gerold

Verfasst: Dienstag 29. Januar 2008, 16:41
von alpine
mein voriges problem hab ich schon gelöst da ich für python utf8 codierung unter sitecustomize.py eingestellt habe!
Verfasst: Dienstag 29. Januar 2008, 17:38
von Hyperion
Der She-Bang wird unter Windows nicht funzen! Setze doch einfach ein "python" davor! Das sollte klappen, sofern es im Suchpfad steht! Ansonsten eben inkl. Pfad zu Python.
Verfasst: Dienstag 29. Januar 2008, 17:45
von alpine
Hyperion hat geschrieben:Der She-Bang wird unter Windows nicht funzen! Setze doch einfach ein "python" davor! Das sollte klappen.
wie meinst das jetzt genau? wo soll ich das python setzen?
Verfasst: Dienstag 29. Januar 2008, 17:48
von Hyperion
ggf. eben mit Pfad zu Python, wenn es nicht im Suchpfad steht (Kann man unter Win irgendwo in der Systemsteuerung bei irgend einem "erweitert"-Button einstellen)
Verfasst: Dienstag 29. Januar 2008, 18:01
von alpine
Hyperion hat geschrieben:
ggf. eben mit Pfad zu Python, wenn es nicht im Suchpfad steht (Kann man unter Win irgendwo in der Systemsteuerung bei irgend einem "erweitert"-Button einstellen)
danke, geht perfekt!
Pfad angabe ist erforderlich!
pls close thread!
Verfasst: Dienstag 29. Januar 2008, 18:24
von gerold
Hallo alpine!
eyeD3 lässt sich auch unter Windows installieren.
1.) Lade die aktuelle TAR-Datei mit den Dateien herunter:
http://eyed3.nicfit.net/releases/
2.) Entpacke die TAR-Datei z.B. mit 7Zip
http://www.chip.de/downloads/7-Zip-4.57_13004776.html in irgendeinen Ordner.
3.) Kopiere den Ordner *src\eyeD3* in den Python-site-packages-Ordner. Der site-packages-Ordner liegt bei mir hier: *J:\Python25\Lib\site-packages*.
4.) Im site-packages-Ordner liegt jetzt der Ordner *eyD3*. In diesem befindet sich die Datei *__init__.py.in*. Diese muss nach *__init__.py* umbenannt werden.
Fertig ist die Installation. Schon kann eyD3 auch unter Windows direkt benutzt werden.
alpine hat geschrieben:mein voriges problem hab ich schon gelöst da ich für python utf8 codierung unter sitecustomize.py eingestellt habe!
Das ist keine Lösung -- das würde ich wieder rückgängig machen, da davon ALLE Python-Programme betroffen wären und evt. teilweise nicht mehr funktionieren könnten.
Und jetzt kannst du eyD3 direkt im Windows aus Python heraus verwenden und Unicode übergeben. In der eyeD3-Website
http://eyed3.nicfit.net/ sind ein paar Beispiele dafür. Allerdings werde ich nicht ganz schlau daraus. Denn der Windows MediaPlayer scheint die neu geschriebenen Tags zu ignorieren, obwohl sie der MPlayer anzeigt.
mfg
Gerold
PS: Meine Versuche:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import eyeD3
def main():
#tag = eyeD3.Tag()
#mp3 = eyeD3.Mp3AudioFile(u"chaosradio_express_067.mp3")
#print dir(mp3)
#print dir(mp3.header)
#tag = mp3.getTag()
tag = eyeD3.Tag()
tag.link(u"chaosradio_express_067.mp3")
#print dir(tag)
print repr(tag.getArtist())
print repr(tag.getAlbum())
print repr(tag.getTitle())
#tag.clear()
#tag.setVersion(eyeD3.ID3_V2_4)
tag.setArtist(u"Über den Wolken1")
tag.setAlbum(u"Österreich in Ürrland")
tag.setTitle(u"Örmstâd")
tag.setTextEncoding(eyeD3.UTF_8_ENCODING)
tag.update()
#tag.update(eyeD3.ID3_V1_1)
#tag.update(eyeD3.ID3_V2_4)
#print dir(tag)
if __name__ == "__main__":
main()
Verfasst: Mittwoch 30. Januar 2008, 11:02
von alpine
gerold hat geschrieben:Hallo alpine!
eyeD3 lässt sich auch unter Windows installieren.
1.) Lade die aktuelle TAR-Datei mit den Dateien herunter:
http://eyed3.nicfit.net/releases/
2.) Entpacke die TAR-Datei z.B. mit 7Zip
http://www.chip.de/downloads/7-Zip-4.57_13004776.html in irgendeinen Ordner.
3.) Kopiere den Ordner *src\eyeD3* in den Python-site-packages-Ordner. Der site-packages-Ordner liegt bei mir hier: *J:\Python25\Lib\site-packages*.
4.) Im site-packages-Ordner liegt jetzt der Ordner *eyD3*. In diesem befindet sich die Datei *__init__.py.in*. Diese muss nach *__init__.py* umbenannt werden.
Fertig ist die Installation. Schon kann eyD3 auch unter Windows direkt benutzt werden.
und wie? möchte es gerne über command line starten!
bzw wo sollte ich den code einbinden?
die optimale lösung wäre wenns nur ein python.exe gibt und das programm eyed3. und nicht den ganzen ordner... [so wenig dateien wir nur möglich]
kein cygwin und keine istallation von python!
weil dann könnt ich es im script einfach so lösen:
python eyed3 -parameters...
verstehst was ich meine?
Verfasst: Mittwoch 30. Januar 2008, 11:26
von gerold
alpine hat geschrieben:und wie? möchte es gerne über command line starten!
[...]
kein cygwin und keine istallation von python!
Hallo alpine!
Im TAR-Archiv im Ordner "bin" gibt es die Datei "eyeD3". Diese ist das Kommandozeilenprogramm. Entpacke die Datei "eyeD3" und nenne sie nach "eyed3.py" um. Achte darauf, dass dieser Dateiname **klein** geschrieben werden muss. Ansonsten funktioniert es nicht.
Also, nach der bereits beschriebenen Installation der Abhängigkeiten, kannst du diese Datei einfach wie ein Kommandozeilenprogramm verwenden.
Wenn du Cygwin sonst für nichts brauchst, dann kannst du es deinstallieren. Aber dieses Forum erkennt automatisch, wenn du Python deinstallierst.

Dann wirst du automatisch deaktiviert.
mfg
Gerold
