python4delphi安装

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

环境搭建:目前p4d已经可以支持到XE7,可惜googlecode即将关闭,不知道作者是否会在github上继续更新。因为此开源项目历史较久远,拿到源代码后可能还需要手动修改相关的文件引用,毕竟需要兼顾低版本的delphi。step1.安装 python4delphi1、首先是组件安装,打开对应版本的Python_??.dpk ,编译修改引用,XE后很多单元带VCL 和FMX的前缀了,需要手工指定, 编译成功后,选择release模式下 安装2、在我们的项目中添加搜索路径:xxxxx\python4delphi\Components\Sources\Core3、在系统盘中的system32或者sysWOW64中找到python27.dll放在程序输出目录中Step2. 将 P4D 的定义文件加到PRoject.dpr

----------------------------

在Delphi project.dpr, 在uses之前,加上{$I Definition.Inc}

----------------------------

Step3. 使用pythonengince 等组件

----------------------------

设置 pythonengince 组件的属性.

UseLastKnownVersion=False

DLLName='python27'

DllPath= 'c:\WINDOWS\system32'

----------------------------

Step4. 发布应用前, 需解决run as administrator问题,

----------------------------

(a) 需要 Microsoft.VC90.CRT 和 Microsoft.Windows.Common-Controls 信息作为资源加到delphi project中, 否则加载python的 c-extensions 模块会报错.

(b)创建 XP_UAC.manifest 文件, 内容见后.

(c)创建 XP_UAC.rc 文件, 内容:

1 24 XP_UAC.manifest

其中: 1-代表资源编号, 24-资源类型为 RTMAINIFEST , UAC.manifest为manifest文件名称

(d)使用delphi的brcc32将 XP_UAC.rc编译成 XP_UAC.res

命令: brcc32 XP_UAC.rc

(e)在Delphi project.dpr源码

(1)在{$R *.res} 后, 加上 {$R XP_UAC.res}

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

部署python4delphi的应用程序

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

方式1. 和开发一样, 老老实实安装python以及python的第3方包, 然后你的delphi程序应该就能使用.

方式2. 像dreampie, 将python环境打包, 连同exe一起发布. 有专门的py2exe,cx_freeze等制作工具.

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

XP_UAC.manifest 的内容

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

C:\WINDOWS\WinSxS 目录查找 Windows.Common-Controls 和 Microsoft.VC90.CRT, 如果能找到并且version一致, 只需修改 PyScripter 名字. 如果没有找到这两个文件, 需要到微软官网下载 Microsoft Visual C++ 2008 Redistributable Package, 并对比版本号和publicKeyToken.

<?xmlversion="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity

version="1.0.0.0"

processorArchitecture="*"

name="PyScripter"

type="win32"/>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="*"

publicKeyToken="6595b64144ccf1df"

language="*"/>

</dependentAssembly>

</dependency>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="win32"

name="Microsoft.VC90.CRT"

version="9.0.21022.8"

processorArchitecture="x86"

publicKeyToken="1fc8b3b9a1e18e3b"

language="*"/>

</dependentAssembly>

</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

<requestedPrivileges>

<requestedExecutionLevel level="asInvoker"/>

</requestedPrivileges>

</security>

</trustInfo>

<asmv3:application>

<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">

<dpiAware>true</dpiAware>

</asmv3:windowsSettings>

</asmv3:application>

</assembly>

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

关于PYTHONPATH的设置

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

关于PYTHONPATH的设置, 可在 TPythonEngine.OnSysPathInit 事件中, 将我们自己的path加到 PythonPATH 中.

如果代码中没有加, 我们需要修改注册表, 位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\PythonPath, 将我们的path加进去.

注意: TPythonEngine.OnPathInitialization 事件, 只有在注册表没有定义 PythonPath 才有用, 所以不推荐使用.

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航