Python4Delphi/ru
Обзор
Домашняя страница: https://code.google.com/p/python4delphi/
С этой страницы:
Питон для Дельфи (Python for Delphi — P4D) это набор свободных компонентов, которые заворачивают dll Питона в Дельфи и Лазарус (FPC). Они позволяют легко выполнять скрипты Питона, создавать новые модули Питона и новые типы. Можно создавать расширения Питон в виде dll и многое другое. P4D предлагает разные уровни функциональности:
- Низкоуровневый доступ к API Питона
- Высокоуровневое двунаправленное взаимодействие с Питоном
- Доступ к объектам Питона, используя тип Дельфи Variant (VarPyth.pas)
- Заворачивание объектов Дельфи для использования в скриптах Питона с помощью RTTI (WrapDelphi.pas)
P4D упрощает использование Питона в качестве скриптового языка для приложений Дельфи.
changelog датирует последние доработки ноябрём 2012г.
Коммит от 21.1.2018 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.
Lazarus port
Lazarus port: Using Python in Lazarus on Windows/Linux
See also
- Old wiki (~2006) with lots of examples at py4d.pbworks.com
- Yahoo group
- Notes from a Python for Delphi talk
FreeBSD
I was able to get this working on FreeBSD without relying on Lazarus design-time components:
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 https://github.com/tangentstorm/py4d .