Difference between revisions of "Python4Delphi/ru"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{LanguageBar}} | ||
= Обзор = | = Обзор = | ||
Line 19: | Line 20: | ||
[https://github.com/pyscripter/python4delphi/commit/88c06f11e70d471fc5dfd3b1e7e446c09eb5ab9a Коммит от 21.1.2018 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.] | [https://github.com/pyscripter/python4delphi/commit/88c06f11e70d471fc5dfd3b1e7e446c09eb5ab9a Коммит от 21.1.2018 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.] | ||
+ | |||
+ | = Порт для Лазарус = | ||
+ | |||
+ | Порт для Лазарус: [[Using Python in Lazarus on Windows/Linux | Использование Питона в Лазарус под Windows/Linux]] | ||
+ | |||
+ | = Смотрите ещё = | ||
+ | |||
+ | * Старая вики (примерно 2006г.) с множеством примеров на [http://py4d.pbworks.com/w/page/9174525/FrontPage py4d.pbworks.com] | ||
+ | * [https://groups.yahoo.com/neo/groups/pythonfordelphi/info Yahoo group] | ||
+ | * Заметки с [http://www.atug.com/andypatterns/pythonDelphiTalk.htm Python for Delphi talk] | ||
+ | |||
+ | = FreeBSD = | ||
+ | |||
+ | Я смог заставить работать это на FreeBSD не используя компоненты времени разработки в Лазарус: | ||
+ | |||
+ | <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> | ||
+ | |||
+ | Моя персональная рабочая копия (включая обёртку Питона для моей последней библиотеки) — https://github.com/tangentstorm/py4d . | ||
+ | |||
+ | |||
+ | [[Category:Other programming languages]] | ||
+ | [[Category:FreeBSD]] | ||
+ | [[Category:Linux]] | ||
+ | [[Category:Windows]] | ||
+ | [[Category:Python]] |
Latest revision as of 13:57, 3 June 2023
│ English (en) │ русский (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 объявляет о совместимости как с Лазарус так и (надеюсь) с Дельфи Линукс.
Порт для Лазарус
Порт для Лазарус: Использование Питона в Лазарус под Windows/Linux
Смотрите ещё
- Старая вики (примерно 2006г.) с множеством примеров на py4d.pbworks.com
- Yahoo group
- Заметки с Python for Delphi talk
FreeBSD
Я смог заставить работать это на FreeBSD не используя компоненты времени разработки в Лазарус:
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]
Моя персональная рабочая копия (включая обёртку Питона для моей последней библиотеки) — https://github.com/tangentstorm/py4d .