使用delphi调用python运行脚本可以使用python4delphi控件,这个控件开源,支持到最新的3.8版本
python下载地址:https://www.python.org/downloads/
python4delphi下载地址:https://github.com/pyscripter/python4delphi
在选安装好python及python4delphi控件时,运行Demos\Demo01,编译好运行或部署到新机子时可能出现闪退,在调试时发现
出在TPythonEngine.Initialize的Py_Initialize上面,经了解后发现是环境问题!
解决方法在PythonEngine控件的OnBeforeLoad事件中加入PythonEngine1.SetPythonHome(PythonEngine1.DllPath);
绿化方法:
解压python2.7包装包或使用python3.8的embed包在某个目录下,在程序中动态设置,可以达到绿化的效果及减少外部干扰处作.同时也可以进行版本切换.
如下,切换2.7和3.8的方式
PythonEngine的AutoLoad设置为false;
以下方式通过ComboBox1 切换
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if PythonEngine1.Initialized then
begin
PythonEngine1.Free;
end;
PythonEngine1:=TPythonEngine.Create(self);
PythonEngine1.IO:=PythonGUIInputOutput1;
if ComboBox1.ItemIndex=0 then
begin
PythonEngine1.DllName:='python27.dll';
edtPythonPath.Text:='D:\python27';
end
else
begin
PythonEngine1.DllName:='python38.dll';
edtPythonPath.Text:='D:\python38';
end;
PythonEngine1.DllPath:=edtPythonPath.Text;
PythonEngine1.SetPythonHome(PythonEngine1.DllPath);
PythonEngine1.LoadDll;
end;
--cml2030