Я не могу использовать Python для Delphi под python2.6 - PullRequest
0 голосов
/ 17 марта 2011

Моя среда - delphi7 и Python2.6.6, установлен python для 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.

test.py:

import ctypes
print 'hello'

Основное приложение delphi:

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, но, похоже, это не проблема.Кто-нибудь успешно использовал P4D под python2.6, скажите, пожалуйста, как я могу это сделать.

=================================
Теперь я решил проблему самостоятельно, прочитав вопросы на официальном сайте 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.

Кстати, я не имею в видучтобы я запутал всех в моем вопросе, если это произойдет, извините за это, поэтому, пожалуйста, не посвящайте вопросы других людей произвольно, если вы сами не пытались.

Ответы [ 2 ]

1 голос
/ 10 июня 2012

Я попробовал решение babykick , но продолжал получать сообщение об ошибке: не могу загрузить python25.dll

Следующееработал на меня.(delphi7, python26, windows xp sp3)

Откройте вкладку свойств TPythonEngine и примените следующие изменения

  • Имя Dll: python26.dll
  • DllPath:c: \ windows \ system32 \
  • UseLastknownVersion: false
1 голос
/ 18 марта 2011

Может быть, я не очень четко описал свой вопрос. Теперь я решил проблему самостоятельно, прочитав вопросы на официальном сайте 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...