New at Python, some trouble with examples
Kevin Forbes VK3KUF
vk3ukf at westnet.com.au
Sat Apr 25 10:02:56 EDT 2009
Hello folks, my name is Kevin, HAM call vk3ukf, site www.vk3ukf.com
I am brand new to Python and having the big learn at the moment.
Running Windows XP pro SP3 with Delphi 7 free version
I installed Python 2.6 and the 1.1.6 PIL to go with it
Now, because I am running the free version of Delphi 7.
I had to remove the vcldb and maybe some other reference in PythonForDelphi
installation files.
They were removed to allow me to fix the Delphi Python installation *.dpk
files in the C:\Program
Files\PythonForDelphi\Components directory, for Delphi to accept and compile
them.
Oh, and I had to rename the Python26.dll to Python25.dll for Delphi to
operate. ???
I got it going, but it may be crippled in some ways.
I tired an example that executes wonderfully on its own, using the Python in
my machine.
This will display basic info on the image such as format type and dimensions
and convert a *.PGM format image with
the filename r9516294.pgm into a *.JPG format image and then save it as
ZZZZ.jpg.
# Python Test File - ImageOpen3.py
import os, sys
import Image
infile = "r9516294.pgm"
im = Image.open(infile)
print im.format, im.size, im.mode
outfile = "ZZZZ.jpg"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print "cannot convert", infile
# end of Py code
That works fine when run from IDLE, Pythons own engine and debugger.
It also works fine if I call it from my Delphi app. as an external app. to
be run using the Delphi code,
procedure TForm1.Button4Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('ImageOpen3.py'), nil, nil,
SW_SHOWNORMAL) ;
end;
My problem occurs when I attempt to run this Python script in the following
way from Delphi
The Delphi form has an AtomPythonEngine1 and a PythonInputOutput1 on it.
The IO property of the AtomPythonEngine1 is set to PythonInputOutput1.
procedure TForm1.Button2Click(Sender: TObject);
begin
PyExeFile('ImageOpen3.py', AtomPythonEngine1);
end;
My Delphi app. crashes, saying the application has requested to terminate in
an unusual way. Really!!
I also tried,
procedure TForm1.Button5Click(Sender: TObject);
begin
PyExe('ImageOpen3.py', AtomPythonEngine1);
end;
That produces the error,
exceptions.NameError: name 'ImageOpen3' is not defined.
If I include the code,
procedure TForm1.FormCreate(Sender: TObject);
begin
PyExeFile('ImageOpen3.py', AtomPythonEngine1);
end;
The app. crashes upon starting, again with the message about the unusual
ways.
I tried building the Py code line by line and getting Delphi to run it.
It began to crash as soon as I included the Python code,
import Image.
This line of code is OK though,
import os, sys
This is not very good, as it is images I am trying to manipulate.
I tried this,
from PIL import Image
That also crashed with unusual ways.
I am still wading through the demos and tutorials.
I am obviously perplexed, it doesn't seem to be a lacking in Python, as the
script runs beaut on its own.
I think Delphi has a problem, possibly me and my current lack of knowledge,
hoping it's not anything else.
Any help, much appreciated.
Thanks in advance to the list, Kevin.
More information about the Python-list
mailing list