Difference between revisions of "Python4Delphi"

From Lazarus wiki
Jump to navigationJump to search
(very rough draft, with a bunch of links)
 
(added my example code)
Line 1: Line 1:
(''page under construction'')
 
 
 
Current home seems to be https://code.google.com/p/python4delphi/
 
Current home seems to be https://code.google.com/p/python4delphi/
  
Line 26: Line 24:
 
* [https://groups.yahoo.com/neo/groups/pythonfordelphi/info yahoo group]
 
* [https://groups.yahoo.com/neo/groups/pythonfordelphi/info yahoo group]
 
* notes from a [http://www.atug.com/andypatterns/pythonDelphiTalk.htm python for delphi talk].
 
* notes from a [http://www.atug.com/andypatterns/pythonDelphiTalk.htm python for delphi talk].
 +
 +
 +
== notes from a user ==
 +
 +
I was able to get this working on FreeBSD without relying on lazarus design-time components:
 +
 +
<pre>
 +
// demo illustrating how to use python for delphi
 +
// from plain fpc, without lazarus or anything.
 +
 +
program simplefpcdemo;
 +
uses PythonEngine, dynlibs;
 +
 +
var eng : TPythonEngine;
 +
begin
 +
  eng := TPythonEngine.Create(Nil);
 +
  eng.LoadDll;
 +
  if eng.IsHandleValid then
 +
    begin
 +
      WriteLn(' evens: ', eng.EvalStringAsStr('[x*2 for x in range(10)]'));
 +
      eng.ExecString('print "powers:", [x**2 for x in range(10)]');
 +
    end
 +
  else writeln('invalid library handle!', dynlibs.GetLoadErrorStr);
 +
end.
 +
</pre>
 +
The output:
 +
<pre>
 +
    evens: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
 +
  powers: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 +
</pre>
 +
 +
My personal working copy (including a python wrapper for my terminal library) is [https://github.com/tangentstorm/py4d @tangentstorm/py4d] on github.
 +
- tangentstorm

Revision as of 09:00, 7 September 2014

Current home seems to be https://code.google.com/p/python4delphi/

From that page:

Python for Delphi (P4D) is a set of free components that wrap up the Python dll into Delphi and Lazarus (FPC). They let you easily execute Python scripts, create new Python modules and new Python types. You can create Python extensions as dlls and much more. P4D provides different levels of functionality:

  • Low-level access to the python API
  • High-level bi-directional interaction with Python
  • Access to Python objects using Delphi custom variants (VarPyth.pas)
  • Wrapping of Delphi objects for use in python scripts using RTTI (WrapDelphi.pas)

P4D makes it very easy to use python as a scripting language for Delphi applications. It comes with an extensive range of demos and tutorials.


The changelog indicates development was last active around Nov 2012.


(possibly?) related resources


notes from a user

I was able to get this working on FreeBSD without relying on lazarus design-time components:

// demo illustrating how to use python for delphi
// from plain fpc, without lazarus or anything.

program simplefpcdemo;
uses PythonEngine, dynlibs;

var eng : TPythonEngine;
begin
  eng := TPythonEngine.Create(Nil);
  eng.LoadDll;
  if eng.IsHandleValid then
    begin
      WriteLn(' evens: ', eng.EvalStringAsStr('[x*2 for x in range(10)]'));
      eng.ExecString('print "powers:", [x**2 for x in range(10)]');
    end
  else writeln('invalid library handle!', dynlibs.GetLoadErrorStr);
end.

The output:

    evens: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
   powers: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

My personal working copy (including a python wrapper for my terminal library) is @tangentstorm/py4d on github. - tangentstorm