开发者

I can't use python for delphi under python2.6

开发者 https://www.devze.com 2023-02-17 23:52 出处:网络
My environment is delphi7 and Python2.6.6, python for delphi installed. But when I run a test app, I got a runtime error.

My environment is delphi7 and Python2.6.6, python for delphi installed.

But when I run a test app, I got a runtime error.

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.

test.py:

import ctypes
print 'hello'

delphi app main:

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

It runs ok if I remove the line "import ctypes", but failed if ctypes is imported.

I googled and found an issue on this: http://code.google.com/p/python4delphi/wiki/P4DPython26.

According to the article, I compile the res file and put the res file and Microsoft.VC90.CRT.manifest even msvcr90.dll in the project folder, add XP_UAC.RES in the project file, but I still got the error. Then I reinstalled the Microsoft Visual C++ 2008 SP1 Redistributable Package, but it seems not the problem. Did anyone use the P4D under python2.6 successfully, please tell me how I can make it.

==================================

Now i have solved the ploblem by myself through reading the issues on the official website of 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.

By the way, I don't mean to confuse everyone of my question, if it does, I'm sorry for that, so please don't devote others' question arbitrarily if you didn't try by yourself.


Maybe I did't describe my question clearly. Now i have solved the ploblem by myself through reading the issues on the official website of 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  


I tried the solution of babykick, but kept getting the error message: can't load python25.dll

The following worked for me. (delphi7, python26, windows xp sp3)

Open the TPythonEngine property tab and apply the following modifications

  • DllName : python26.dll
  • DllPath : c:\windows\system32\
  • UseLastknownVersion : false
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号