问题标签 [python4delphi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
169 浏览

python - 在 Delphi 中使用 TPythonEngine 的应用程序使用太多内存

我正在使用https://github.com/pyscripter/python4delphi/tree/master/PythonForDelphi 当我在运行时删除 TpythonEngine 时,我遇到了大量的内存使用没有被释放。

这是代码片段

代码可以从表单上的按钮运行。我还使用 TMemo 作为函数的结果:

当您运行代码两次时,FreeAndNil for TPythonEngine 上的内存没有很好地释放。如果你循环更多,它会导致应用程序崩溃,因为没有更多的内存可用。是否缺少一些真正释放 TPythonEngine 的参数?

我尝试 UnloadDLL、Finalize、设置各种属性,如 AutoLoad/AutoFinalize 等...

我可以跑几次

这不会造成异常的内存使用,但我的目标是创建一个包含 Pythonengine 的 Delphi 对象。这些对象被创建/销毁多次,因此内存使用对我的行为不利。

任何建议或更新的库将 Python 与 Delphi 2010 一起使用/或帮助解决过多的内存使用。

0 投票
0 回答
121 浏览

delphi - 如何在 Delphi 中实现嵌套对象以使用 python4delphi 公开?

假设我有一个类,例如:

以及我想在 python 中公开的另一个类:

这样我就可以在 python 端进行调用,例如(假设它们位于模块 mylib 中):

我知道如何使用 Python4Delphi 将简单的类(如 TArithmetic)公开为 Python 中的类,这很简单。我不确定如何注册一个在父类中具有其他类的类,以便它们在 Python 中可见。

0 投票
1 回答
611 浏览

delphi - 如何使用 Python4Delphi 从 Delphi 返回列表到 Python

使用 Python4Delphi,将 Delphi 方法暴露给 Python 是相当简单的,这样 Python 就可以调用 Delphi 应用程序。但是,我无法将由 Delphi 方法创建的 Python 列表返回给 Python。例如:

从 Python 调用时,这将返回“NoneType”。如果将 PPyObject 更改为整数、AnsiString 或 double 等类型,Python 会选择正确的类型并正确显示它。我用

从 Delphi 公开该方法。但是,据我所知,无法指定参数或返回类型的类型。

我想知道是否有人从 delphi python 类型(例如列表甚至 numpy 数组)返回?

0 投票
1 回答
66 浏览

delphi - Python4Delphi,支持不同的Unix安装

我想在 Linux 上部署一个 Delphi 应用程序,它将加载一个 Python 脚本并执行它。

我的第一个演示应用程序在我的测试系统上运行,即 Linux Red Hat 安装。但是我在不同的客户端安装上失败了,有 Ubuntu 和不同的 Python 版本。

有没有办法配置 Python4Delphi 自动匹配使用的 Linux 和 Python 版本?如果没有:有没有办法向 Delphi 组件提供这些详细信息,在哪里/如何确定必须在 Linux 客户端安装上设置哪些参数?

应该有一个解决方案,acc。到Ubuntu 工作示例

0 投票
0 回答
113 浏览

python - 找到正确的 python4delphi Tpythonengine 参数

从这里python 4 delphi使用 Tpythonengine 时,由于这些计算机上的 python 配置不同,我无法让我的代码 *.exe 在不同的系统上运行。按照 示例代码的思路,我通过一个*.ini文件,完成了所有python4delphi-TpythonEngine参数的设置。

只有一个在 WINDOWS 操作系统上设置 python4Delphi 的教程(在 WINDOWS 下配置 ,但不适用于 LINUX。

有人可以帮助为最新的 UBUNTU、CENTOS、LINUX MX 发行版提供正确的参数。

最重要的代码部分在这里

0 投票
1 回答
118 浏览

python - Python4Delphi - 使用 TPyDelphiWrapper.WrapInterface 包装 delphi 接口时出错

我正在使用 Python 3.8 和 Delphi 10.4.2。

我正在尝试使用Python4Delphi的组件通过 Python 脚本访问 Delphi 中定义的一些接口。

在设计时,我将 TPythonEngine、TPythonModule 和 TPyDelphiWrapper 组件添加到我的项目的 VCL 表单中。

所以我定义了3个接口,分别由3个类实现,如下

在表单的 Create 方法中,我定义了 3 个变量,为 3 个接口中的每一个定义一个,并通过 PyDelphiWrapper 我将它们传递给 Python 模块中的 3 个不同的 Python 变量。

在运行时变量被正确解释,但每次我尝试访问接口中定义的属性之一时,我总是得到相同的错误。

这是我尝试运行的 Python 脚本:

我得到的错误

回溯(最后一次调用):文件“”,第 7 行,在 AttributeError 中:获取属性“名称”时出错。错误:未知属性

type(...) 命令对三个变量正确运行。

如果我不使用接口类型的 3 个变量,而是使用 PyDelphiWrapper.Wrap 方法将每个变量声明为类类型,那么一切正常!

使用相同的 Python 脚本,我得到正确的输出而没有错误

在此处输入图像描述

任何人都知道我在使用 TPyDelphiWrapper 为 Python 脚本包装接口类型变量时做错了什么?

0 投票
2 回答
388 浏览

python - 使用 Python4Delphi 组件时未找到 python33.dll 错误

我正在开发一个带有 Python4Delphi 组件的项目,而且我想使用嵌入式版本的 python,因为不需要安装,它更好用。我已经在适当的属性中为 python310.dll 设置了正确的路径和文件名,但没有机会正常运行并且总是得到

我还将dll的目录添加到环境变量中仍然没有运气。怎么了?(python和delphi 10.4项目都是32bit版本,windows 10 64bit)

0 投票
0 回答
127 浏览

delphi - 为什么我的 Delphi 函数与 PyDelphiWrapper 的参数总是修复错误的值?

我正在使用 Python4Delphi 并尝试让演示 WrapDelphiDemo 运行。

它应该做的是计算高达 1000000 的值的素数数量。

预期值为 78498,但当我让演示代码运行时,我得到 575843。

我发现函数的参数值“MaxN”始终是固定值 8574564,而不是预期的 1000000。

我在 Win7 上使用 Delphi Seattle。

Python4Delphi 是来自 GitHub 的最新版本。

我使用原始的演示代码。

我需要适应的是西雅图版本我不能使用内联变量定义。

有谁知道我能做什么?

这里是 MainForm 的完整代码: