Difference between revisions of "Python4Delphi/ru"

From Free Pascal wiki
Jump to navigationJump to search
Line 19: Line 19:
  
 
[https://github.com/pyscripter/python4delphi/commit/88c06f11e70d471fc5dfd3b1e7e446c09eb5ab9a Коммит от 21.1.2018 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.]
 
[https://github.com/pyscripter/python4delphi/commit/88c06f11e70d471fc5dfd3b1e7e446c09eb5ab9a Коммит от 21.1.2018 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.]
 +
 +
= Lazarus port =
 +
 +
Lazarus port: [[Using Python in Lazarus on Windows/Linux]]
 +
 +
= See also =
 +
 +
* Old wiki (~2006) with lots of examples at [http://py4d.pbworks.com/w/page/9174525/FrontPage py4d.pbworks.com]
 +
* [https://groups.yahoo.com/neo/groups/pythonfordelphi/info Yahoo group]
 +
* Notes from a [http://www.atug.com/andypatterns/pythonDelphiTalk.htm Python for Delphi talk]
 +
 +
= FreeBSD =
 +
 +
I was able to get this working on FreeBSD without relying on Lazarus design-time components:
 +
 +
<syntaxhighlight lang=pascal>
 +
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.
 +
</syntaxhighlight>
 +
 +
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 .
 +
 +
 +
[[Category:Other programming languages]]
 +
[[Category:FreeBSD]]
 +
[[Category:Linux]]
 +
[[Category:Windows]]
 +
[[Category:Python]]

Revision as of 18:21, 1 June 2023

Обзор

Домашняя страница: 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

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 .