在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
python4delphi有更新了,支持最新的python(python3.7)和delphi(10.3)。 git上下载更新的python4delphi,然后安装控件,打开demo1, 提示不能打开python27.dll,这个,我电脑上的是3.6,肯定不行,改TPythonEngine控件的DllPath,DllName,RegVersion( 这个属性可以不管)。。。运行,还是不行,还是装载了'python27.dll',奇怪了,跟踪,原来是PythonEngine的UseLastKnowVersion属性作怪,设置UseLastKnowVersion为False,运行,还是不能打开,现在的DLL名称是'python36.dll'了,怎么不能打开呢,跟踪,就是SafeLoadLibary()出问题,这是dll不对了,怎么回事。。。乱点鼠标中。。。win32,win64, 想起了,我的python是64bit的!!!这个Demo是32bit,切换成64,编译不了,嗯,我只是安装了32BIT的控件,没安装编译64BIT的。。。64BIT的怎么编译安装,打开控件包,切换64BIT,各种错误。。。 (这里顺便记下:delphi里的32/64是指支持运行在32/64,但是,delphi IDE 本身是32bit,所以,没有64BIT的设计时控件,只有'运行时'的64BIT控件,也就是说,控件支持32/64,是在运行时支持64,设计时永远是32,所以设计时控件不要在64BIT下编译,试试就知道了,在64BIT下,控件是没有安装这个选项的) 纠结了下,还是转个32BIT的PYTHON吧,万一以后还有其它的需求32BIT的PYTHON呢,装,网上索了下,ANCONDA3下同时安装64bit和32bit的python,照着做: 这里重复记录下: 在anaconda Prompt 下, conda info,查看当前的信息: 首先切换到Window 32BIT平台:set CONDA_FORCE_32BIT=1 这就是32BIT了,然后要在这个环境下安装(网上说在这个情况下,也不能用anaconda navigator的界面来安装,只能在COMMAND PROMPT下安装) 为了和64BIT的共存,32BIT的安装要建立一个新环境: conda create -n python32bit python=3.6 然后安装,安装完后会在python的env 下有个新目录 python32bit
好了,python32BIT安装好了,再去试python4delphi 打开DEMO,修改Dllpath,运行,直接崩溃。。。。
汇编不会啊,看不懂 看不懂也要跟踪下,哪哪出问题了,嗯,是python的Py_Initialize()出问题,这行代码 Py_Initialize := Import('Py_Initialize'); 咋办呢,万能的互联网啊(哪天不能上网,那是不是也活的差不多了) 网上说,一般出这个问题,是python的路径出问题了,系统环境变量里找不着python了,哦,是这样,但是我不能设置python32路径在系统变量里啊,不能为了python4delphi而毁了其它的千千万万的python代码。。。(我的系统里是不设置python路径的环境变量的,因为不是固定一个python版本) 网上说,2个办法: “两个方法: 一个就是补全python的环境变量。 另一个就是手动设置初始化函数的搜寻路径(也就是加载路径)” 真好,可以手动临时设置,就是这个python函数Py_SetPythonHome() 那python4delphi里在哪设置呢,嗯,刚才跟踪的时候看到了 procedure SetPythonHome(const PythonHome: string); 是个public方法,为什么不publish成属性啊? 呵,这个PathHome和DLLPath一样,然后在那里调用这个方法啊,还是跟踪的时候看到了几个个事件,OnAfterLoad和 OnBeforLoad,是在Py_Initialize()前调用的,正正好,设置TPythonEngine的OnAfterLoad或OnBeforLoad: procedure TForm1.PythonEngine1AfterLoad(Sender: TObject); 感觉这个更好 procedure TForm1.PythonEngine1BeforeLoad(Sender: TObject); 给我起吧,运行好了。。。。 不过demo1 例子会提示错误啊,不过这个错误表明了运行正确,因为,语句print 2+2,这是python2的,改成print(2+2),OK ????。。。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论