Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi4 Python_Python_Delphi - Fatal编程技术网

Delphi4 Python

Delphi4 Python,python,delphi,Python,Delphi,我想在这里使用Delphi4 Python组件 但我不想将组件放到表单上,我希望所有内容都在代码中,我的代码如下所示: var PythonEngine_netA: TPythonEngine; PythonInputOutput_netA: TPythonInputOutput; begin PythonEngine_netA := TPythonEngine.Create(Self); PythonInputOutput_netA := TPythonInputOutput

我想在这里使用Delphi4 Python组件 但我不想将组件放到表单上,我希望所有内容都在代码中,我的代码如下所示:

 var
  PythonEngine_netA: TPythonEngine;
  PythonInputOutput_netA: TPythonInputOutput;
begin
  PythonEngine_netA := TPythonEngine.Create(Self);
  PythonInputOutput_netA := TPythonInputOutput.Create(Self);
  try
    ///  configure the components
    PythonEngine_netA.DllName:='python39.dll';
    PythonEngine_netA.IO := PythonInputOutput_netA;
    PythonEngine_netA.UseLastKnownVersion := True;

    PythonInputOutput_netA.OnSendUniData := PythonInputOutput_SendUniData;
    PythonInputOutput_netA.UnicodeIO := True;
    PythonInputOutput_netA.RawOutput := True;

    ///  execute  the script
    PythonEngine_netA.ExecString(UTF8Encode(mmo_pythoncode.text));
  finally
    PythonEngine_netA.free;
    PythonInputOutput_netA.free;
  end;
执行此代码失败,错误消息:“Python未正确初始化”, 使用此代码时我错过了什么?

快速查看一下(或者更好:始终搜索所有文件以查找错误消息返回的位置和原因)就会发现您错过了调用
PythonEngine\u netA.Initialize()

另请注意,它描述了:

演示34动态创建、销毁和重新创建Python引擎。使用Python转换


因此,请看一看它是如何(几乎)在没有组件的情况下完成的。或者总体上运行整个项目,最好是在调试模式下单步执行,以了解哪个方法起作用。

添加这行代码,但现在调用时会出现AV错误:PythonEngine_netA.Initialize()命令通过该方法调试和单步执行如何?错误发生在程序TPythonEngine.AssignPyFlags;已经添加了此代码,但没有成功:PythonFlags\u netA:TPythonFlags;开始。。尝试///配置组件///PythonFlags\u netA:=[]。。。PythonEngine_netA.PyFlags:=PythonFlags_netA;这种方法在哪里
Py_DebugFlag
是一个指针,在
TPythonInterface.MapDll
中设置-该方法在
TPythonInterface.AfterLoad
中调用。由于
TPythonEngine
继承自
TPythonInterface
调用
PythonInputOutput\u netA.AfterLoad()
。还可以编辑您的问题,并在评论中使用代码格式。