Python4Delphi
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
Python4Delphi
Hey hat schon jemand damit gearbeitet vllt auch noch unter Delphi zeiten? (ich nich hatte noch garkein delphi xD)
Hab mir die Sources von http://code.google.com/p/python4delphi/ geladen, jedoch kann man das Lazarus package nich so einfach installieren, darum hab ich auch sofort nen Bug-Report + Patch erstellt, und ein tag davor den Entwickler angeschrieben jedoch bisher keine Antwort
Bugreport: http://code.google.com/p/python4delphi/ ... etail?id=2
Also funktionieren tut es weitgehend jedoch ich kann einfach keine Form durch Python-Code erstellen bekomme immernur ne Access Violation ohne einen lesbaren Trace ... naja hoffe ihr habt glück
Hab mir die Sources von http://code.google.com/p/python4delphi/ geladen, jedoch kann man das Lazarus package nich so einfach installieren, darum hab ich auch sofort nen Bug-Report + Patch erstellt, und ein tag davor den Entwickler angeschrieben jedoch bisher keine Antwort
Bugreport: http://code.google.com/p/python4delphi/ ... etail?id=2
Also funktionieren tut es weitgehend jedoch ich kann einfach keine Form durch Python-Code erstellen bekomme immernur ne Access Violation ohne einen lesbaren Trace ... naja hoffe ihr habt glück
-
- Beiträge: 250
- Registriert: Di 16. Dez 2008, 20:13
- OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
- CPU-Target: 32/64Bit
Re: Python4Delphi
Hast du auch Python4VCL installiert?
mfg _X_
mfg _X_
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
Re: Python4Delphi
Installieren konnte man es nicht, ich hab es erstmal mit vielen IFDEFS ausgespickt, dann konnte man es compilieren jedoch kommt danach immernoch ein Access Violation
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Guten Tag zusammen,
ich hänge mich mal an diesen Beitrag an. Ich bin dabei das hier: http://wiki.freepascal.org/Using_Python_in_Lazarus_on_Windows/Linux auszuprobieren. Komme aber mit dem zugehörigen Beispiel nicht wirklich gut zurecht.
Der Entwickler legt wohl Wert auf Python 3. Ich nutze aber Python 2.7 aus Miniconda bzw. Anaconda. Wenn ich zu Testzwecken die Namen und Pfad entsprechend ändere stürzt schon mal nix ab, aber zu sehen ist auch nix, außer dass eine Art "schwarze Eingabeaufforderung" aufgeht.
Warum wird in der Prozedur: eine zip-Datei python33.zip benötigt?
Mit dem "edConsoleKeyPress" kann ich auch nix anfangen. Ich finde keine entsprechende "memoConsole". Ich habe einfach ein TMemo genommen.
Hat von Euch jemand Erfahrung damit? Mir schwebt vor mal mit numpy und matplotlib einen sinus darzustellen. Hierfür Amplitude (A) und Omega (w) von Lazarus nach Python zu schicken und die Arrays für "t" bzw. "y" (y = A*sin(w*t)) zurückzubekommen. Das Arrays für t soll in Python entstehen (linespace), folglich das y-Array auch.
Gibt es auch die Möglichkeit ohne "Python4Lazarus" von Lazarus aus Python-Scripte aufzurufen und an diese Werte zu übergeben, von diesen zu empfangen? Wenn ja, was ist einfacher?
Für Hilfe danke ich im voraus.
Viele Grüße
Volker
ich hänge mich mal an diesen Beitrag an. Ich bin dabei das hier: http://wiki.freepascal.org/Using_Python_in_Lazarus_on_Windows/Linux auszuprobieren. Komme aber mit dem zugehörigen Beispiel nicht wirklich gut zurecht.
Der Entwickler legt wohl Wert auf Python 3. Ich nutze aber Python 2.7 aus Miniconda bzw. Anaconda. Wenn ich zu Testzwecken die Namen und Pfad entsprechend ändere stürzt schon mal nix ab, aber zu sehen ist auch nix, außer dass eine Art "schwarze Eingabeaufforderung" aufgeht.
Warum wird in der Prozedur:
Code: Alles auswählen
procedure TfmMain.PythonEngineAfterInit(Sender: TObject);
Mit dem "edConsoleKeyPress" kann ich auch nix anfangen. Ich finde keine entsprechende "memoConsole". Ich habe einfach ein TMemo genommen.
Hat von Euch jemand Erfahrung damit? Mir schwebt vor mal mit numpy und matplotlib einen sinus darzustellen. Hierfür Amplitude (A) und Omega (w) von Lazarus nach Python zu schicken und die Arrays für "t" bzw. "y" (y = A*sin(w*t)) zurückzubekommen. Das Arrays für t soll in Python entstehen (linespace), folglich das y-Array auch.
Gibt es auch die Möglichkeit ohne "Python4Lazarus" von Lazarus aus Python-Scripte aufzurufen und an diese Werte zu übergeben, von diesen zu empfangen? Wenn ja, was ist einfacher?
Für Hilfe danke ich im voraus.
Viele Grüße
Volker
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Python4Delphi
Ich benutz es im promet als Scriptengine (eine mögliche)
https://github.com/cutec-chris/python4delphi
Keine Ahnung was da im Wiki im Moment steht, mit meiner github Version läuft aber alles.
https://github.com/cutec-chris/python4delphi
Keine Ahnung was da im Wiki im Moment steht, mit meiner github Version läuft aber alles.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Hallo Christian,
vielen Dank für den Link. Ich finde kein Lazarus-Package. Nutzt man nur die Units? Wie installiert man es in Lazarus ohne Package?
Gruß
Volker
vielen Dank für den Link. Ich finde kein Lazarus-Package. Nutzt man nur die Units? Wie installiert man es in Lazarus ohne Package?
Gruß
Volker
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Python4Delphi
Nimm doch einfach das da :
https://github.com/cutec-chris/python4d ... P4DFpc.lpk
https://github.com/cutec-chris/python4d ... P4DFpc.lpk
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Hallo Christian,
danke für die Links. die lpk's waren mir nicht aufgefallen. Leider installiert das Package für Lazarus nicht. Das Kompilieren bricht ab. Meldung: PythonGUIInputOutput.pas(53,3) "Implementation" expected but STDCTRLS found.
Beim FPC-Package wird logischerweise das Installieren nicht angeboten.
Habe vorher aktuelles Lazarus installiert und die Vorversion 1.6.2 runtergeworfen.
Hast Du dafür Abhilfe?
Gruß
Volker
danke für die Links. die lpk's waren mir nicht aufgefallen. Leider installiert das Package für Lazarus nicht. Das Kompilieren bricht ab. Meldung: PythonGUIInputOutput.pas(53,3) "Implementation" expected but STDCTRLS found.
Beim FPC-Package wird logischerweise das Installieren nicht angeboten.
Habe vorher aktuelles Lazarus installiert und die Vorversion 1.6.2 runtergeworfen.
Hast Du dafür Abhilfe?
Gruß
Volker
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Hallo Christian,
vielen Dank für die Hilfe. Hab' ein wenig gefummelt und die Installation hinbekommen. So lernt man nebenbei noch was zu Packages. Die einzelnen Komponenten werden jetzt angezeigt, allerdings fehlen die kleinen grünen Schlangenköpfe. Aber es gibt die Hilfe wenn man über den Knopf fährt.
Viele Grüße
Volker
vielen Dank für die Hilfe. Hab' ein wenig gefummelt und die Installation hinbekommen. So lernt man nebenbei noch was zu Packages. Die einzelnen Komponenten werden jetzt angezeigt, allerdings fehlen die kleinen grünen Schlangenköpfe. Aber es gibt die Hilfe wenn man über den Knopf fährt.
Viele Grüße
Volker
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Python4Delphi
Ich benutz nur das fpc Package, hab die Unit gefixt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Hallo zusammen,
ich habe im Zusammenhang mit Python4Delphi die Frage nach der Umwandlung von Variant zu Double.
TPythonDelphiVar liefert mit "Ergebnis.Value" den Wert (auch ein Array) als Variant zurück. Wie kann man ein Variant-Array in ein Double-Array überführen?
Ich habe hier: https://stackoverflow.com/questions/113 ... amic-array nachgesehen und es auch ausprobiert, aber
Dann habe ich "zu Testzwecken" mal den oberen Teil von "if not ... bis einschließlich raise ..." auskommentiert und beim Array kommt nur Mist raus.
Zum Vergleich habe ich in einer For-Schleife jeden einzelnen Wert des Variant-Array mit Double(Wert[i]) gecastet und mit writeln danach beide Arrays ausgegeben. Bei dem mit "DoubleDynArrayFromVarArray" gecasteten Array kommt Mist raus.
Es geht zwar mit einer for-Schleife (das Array hatte nur 100 Einträge) aber wenn es mal mehr Elemente werden (mehrere 10 Tsd. oder so), dann wird's bestimmt langsam, oder?
Hat jemand hierfür eine Idee?
Vielen Dank und viele Grüße
Volker
ich habe im Zusammenhang mit Python4Delphi die Frage nach der Umwandlung von Variant zu Double.
TPythonDelphiVar liefert mit "Ergebnis.Value" den Wert (auch ein Array) als Variant zurück. Wie kann man ein Variant-Array in ein Double-Array überführen?
Ich habe hier: https://stackoverflow.com/questions/113 ... amic-array nachgesehen und es auch ausprobiert, aber
Code: Alles auswählen
function DoubleDynArrayFromVarArray(const V: Variant): TDoubleDynArray;
var
P: Pointer;
Count: Integer;
begin
Result := nil;
if not VarIsArray(V) or (VarType(V) and varTypeMask <> varDouble) or
(VarArrayDimCount(V) <> 1) then
raise EVariantInvalidArgError.Create(SVarInvalid); [color=#FF0000]<<<----------- hier ist das Programm ausgestiegen bzw. hängen geblieben!![/color]
Count := VarArrayHighBound(V, 1) - VarArrayLowBound(V, 1) + 1;
if Count = 0 then
Exit;
P := VarArrayLock(V);
try
SetLength(Result, Count);
Move(P^, Result[0], Count * SizeOf(Double));
finally
VarArrayUnlock(V);
end;
end;
Dann habe ich "zu Testzwecken" mal den oberen Teil von "if not ... bis einschließlich raise ..." auskommentiert und beim Array kommt nur Mist raus.
Zum Vergleich habe ich in einer For-Schleife jeden einzelnen Wert des Variant-Array mit Double(Wert[i]) gecastet und mit writeln danach beide Arrays ausgegeben. Bei dem mit "DoubleDynArrayFromVarArray" gecasteten Array kommt Mist raus.
Es geht zwar mit einer for-Schleife (das Array hatte nur 100 Einträge) aber wenn es mal mehr Elemente werden (mehrere 10 Tsd. oder so), dann wird's bestimmt langsam, oder?
Hat jemand hierfür eine Idee?
Vielen Dank und viele Grüße
Volker
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Python4Delphi
Hallo Zusammen,
ich muß nochmal blöd fragen: Funktioniert Python4Delphi mit python2 und python3 sowie auch in den 64bit Varianten?
Viele Grüße
Volker
ich muß nochmal blöd fragen: Funktioniert Python4Delphi mit python2 und python3 sowie auch in den 64bit Varianten?
Viele Grüße
Volker