0

我的环境是delphi7和Python2.6.6,安装了python for delphi。

但是当我运行一个测试应用程序时,我得到了一个运行时错误。

Microsoft Visual C++ Runtime Library
Runtime Error!
program:E:\programming\delphi\p4dtest\dd\project1.exe

This application has requeste, the Runtime to terminate it in an unusual way.  
Please contact the application's support team for more information.

测试.py:

import ctypes
print 'hello'

德尔福应用程序主要:

procedure TForm1.Button1Click(Sender: TObject);
begin
      PyExeFile('test.py', PE);    
end;

如果我删除“import ctypes”行,它运行正常,但如果导入 ctypes,它会失败。

我用谷歌搜索并发现了一个问题: http ://code.google.com/p/python4delphi/wiki/P4DPython26 。

根据文章,我编译res文件并将res文件和Microsoft.VC90.CRT.manifest甚至msvcr90.dll放在项目文件夹中,在项目文件中添加XP_UAC.RES,但我仍然得到错误。然后我重新安装了 Microsoft Visual C++ 2008 SP1 Redistributable Package,但似乎没有问题。有人在python2.6下成功使用过P4D吗,请告诉我怎么做。

==================================
现在我通过阅读官网的问题自己解决了这个问题P4D:

1、In the pythonengine property tab

‍keep set  “UseLastKnownVersion” to True

‍keep ‍set   "DLLName"  to  python26

2、on your PythonEngine component and adjust your define:

{$DEFINE PYTHON26}

which you can do in the project options of Delphi 7.  
Just add PYTHON26 to the "conditional defines" dialog box.

顺便说一句,我的问题并不是要混淆大家,如果是的话,我很抱歉,所以如果你没有自己尝试,请不要随意投入别人的问题。

4

2 回答 2

1

也许我没有清楚地描述我的问题。现在我通过阅读P4D官网的问题,自己解决了这个问题:

1、In the pythonengine property tab

‍keep set  “UseLastKnownVersion” to True

‍keep ‍set   "DLLName"  to  python26

2、On your PythonEngine component and adjust your define:

{$DEFINE PYTHON26}

which you can do in the project options of Delphi 7.  
Just add PYTHON26 to the "conditional defines" dialog box  
于 2011-03-18T05:32:22.123 回答
1

我尝试了babykick的解决方案,但一直收到错误消息: 无法加载 python25.dll

以下对我有用。(delphi7, python26, windows xp sp3)

打开 TPythonEngine 属性选项卡并应用以下修改

  • DLL名称:python26.dll
  • DllPath : c:\windows\system32\
  • 使用上一个版本:假
于 2012-06-10T10:04:59.200 回答