Python4Delphi

Rund um die LCL und andere Komponenten

Python4Delphi

Beitragvon EugenE » 4. Mai 2009, 21:40 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
EugenE
 
Beiträge: 441
Registriert: 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1) | 
CPU-Target: 64Bit
Nach oben

Beitragvon _X_ » 7. Mai 2009, 15:00 Re: Python4Delphi

Hast du auch Python4VCL installiert?

mfg _X_
„If you've any great suggestions, feel free to pm me, and I'll probably feel free to ignore you“
_X_
_X_
 
Beiträge: 251
Registriert: 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon EugenE » 7. Mai 2009, 15:04 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 :(
EugenE
 
Beiträge: 441
Registriert: 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1) | 
CPU-Target: 64Bit
Nach oben

Beitragvon ErnstVolker » 10. Okt 2017, 16:53 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:
Code: Alles auswählen
procedure TfmMain.PythonEngineAfterInit(Sender: TObject);
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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Christian » 11. Okt 2017, 10:51 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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6092
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon ErnstVolker » 11. Okt 2017, 20:30 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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Christian » 11. Okt 2017, 21:06 Re: Python4Delphi

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6092
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon ErnstVolker » 11. Okt 2017, 22:11 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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon ErnstVolker » 12. Okt 2017, 17:31 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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Christian » 13. Okt 2017, 10:10 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/
Christian
 
Beiträge: 6092
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon ErnstVolker » 22. Okt 2017, 13:08 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

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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon ErnstVolker » 1. Nov 2017, 17:50 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
ErnstVolker
 
Beiträge: 158
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried