• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

python

Begonnen von rJazz, Freitag, 25. September 2015, 18:50

Vorheriges Thema - Nächstes Thema

barrio

Etwas spät, aber wenn rJazz oder andere es noch interessiert. Man kann in Python Lilypond ansteuern mit dem Modul abjad http://abjad.mbrsi.org/for_beginners/abjad_hello_world_in_a_file.html. Allerdings schrteibt man den Code dann natürlich in ein Python *.py file. Mit
systemtools.open_last_ly()
kann man sich das ly file anzeigen, welches abjad intern erstellt. :-)

Viel SPaß damit
barrio

xr

Hi,

ich habe ebenfalls nach einer Möglichkeit gesucht, mit Python Code für Lilypond zu erzeugen, und bin daher auf diesen alten Thread gestoßen.

1)

Nach einigem Probieren funktioniert bei mir der folgende Code, der in "test.py" eine Datei "test.ly" erzeugt, die von Lilypond wieder eingelesen wird. (Den Code führe ich in Frescobaldi aus.)
Lilyponds Parser wartet dabei auf die Ausführung des Pythoncodes, was man auch sieht, wenn man dem Systemaufruf kein Argument mitgibt. Also: "(system "C:\\Python34\\python.exe")
Dann nämlich öffnet sich die Pythonkonsole und erst wenn die wieder geschlossen wird, führt Lilypond weiteren Code aus.

\version "2.18.2"


pyMx =
#(define-void-function (parser location)()
   (system "C:\\Python34\\python.exe C:\\Users\\Homer\\Desktop\\Lilypond\\Droste\\test.py")
  )

\pyMx


\include "test.ly"


Mit "C:\\Python34\\python.exe" kann ich auch meine eigene Pythoninstallation ansprechen. Gebe ich nur "python" an, wird die Pythoninstallation von Lilypond oder Frescobaldi geöffnet. (Version 2.4.5 - ziemlich veraltet)

2)

Abjad habe ich ebenfalls ausprobiert, es läuft bei mir allerdings nicht. (Lilypond 2.18.2, Python 2.7.11 oder 3.4 oder 3.5, Abjad 2.16, win7 und win10)
Abjad läuft, nachdem ich es gerade nochmal probiert habe, nun plötzlich doch. Leider weiß ich nicht mehr, was ich alles geändert habe.

Der Befehl "systemtools.open_last_ly()" muss bei mir allerdings lauten: "systemtools.IOManager.open_last_ly()" und erzeugt weiterhin einen Fehler:
"Der Befehl "edit" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."

Grüße,
Xaver






harm6

ZitatMit "C:\\Python34\\python.exe" kann ich auch meine eigene Pythoninstallation ansprechen.

Unwahrscheinlich, daß das auf meinem Linux-system funktioniert :D

ZitatGebe ich nur "python" an, wird die Pythoninstallation von Lilypond oder Frescobaldi geöffnet. (Version 2.4.5 - ziemlich veraltet)

Allerdings funktioniert midi2ly nicht mit neueren python-versionen, siehe diesen aktuellen thread:
http://lilypond.1069038.n5.nabble.com/midi2ly-dll-error-td189201.html

Gruß,
  Harm

xr

ZitatUnwahrscheinlich, daß das auf meinem Linux-system funktioniert
Ich nutze Linux nur gelegentlich, daher bin ich da nicht sicher, aber ich dachte, man spricht ein bestimmtes Python direkt an, wenn man nicht das für das System voreingestellte nutzen will.  Etwa: "python3" statt "python"

ZitatAllerdings funktioniert midi2ly nicht mit neueren python-versionen
Frescobaldi bzw. Lilypond nutzen ja weiterhin python 2.4. Nur mein Code wird mit meiner Python Version ausgeführt.

harm6

Zitat von: xrIch nutze Linux nur gelegentlich, daher bin ich da nicht sicher, aber ich dachte, man spricht ein bestimmtes Python direkt an, wenn man nicht das für das System voreingestellte nutzen will.  Etwa: "python3" statt "python"

Yep, es sollte eigentlich ein kleiner Scherz sein, denn Dein windows-Pfad wird bei mir nicht funktionieren.
Vielleicht wäre ein Kommentar wie etwa "oder wo auch immer das gewünschte python sich befindet" sinnvoll.

Gruß,
  Harm