Re: call subroutine by pyperl
Tommy Ditlev Henriksen <[email protected]> Wed, 31 Mar 2010 16:40:42 +0200
| Newsgroups | gmane.comp.web.zope.perl |
|---|---|
| Message-ID | <[email protected]> |
--===============9004421515182002211== Content-Type: multipart/alternative; boundary=000325554e4610d276048319bbbc --000325554e4610d276048319bbbc Content-Type: text/plain; charset=ISO-8859-1 I look at it some time ago, and had some problems with pointer errors. I decided to use an JSON gw instead. If any interrest Ill be happy to share! kr Tommy On Wed, Mar 31, 2010 at 3:23 PM, DmitriKo <[email protected]> wrote: > Hey, Kenny. > > I offer to stop wasting your time on that cool by marginal solution. > > Please use old good tools for inter program communication. > > $ perl test.pm | python test.py > > as example where output from test.pm come to sys.stdin in python test.py > > use json, xml, text ... with easy. > > -- > DmitriKo > > On Wed, Mar 31, 2010 at 4:01 PM, Kenny <[email protected]> > wrote: > > Dear all, > > > > I have a question about pyperl. > > > > there is a perl module test.pm: > > #! /usr/bin/perl > > package tset > > sub Cal { > > my ($v1,$v2)=@_; > > my $result=$v1+$v2; > > } > > print "this is a test \n"; > > 1; > > > > And there is a python file that calls the module above, > > import perl > > perl.require("test"); > > #perl.call("Usage","test1.pl") > > #perl.call("test::Usage", "1") > > b=perl.call("test::Cal", 1, 1) > > print b > > > > when run, I got a error message shown below: (can anyone tell me the > reason? > > many thanks) > > ##################################error message#################### > > kenny@kenny-laptop:~/Desktop$ python test.py > > it is a test > > 2 > > *** glibc detected *** python: free(): invalid pointer: 0xb7d7b1a0 *** > > ======= Backtrace: ========= > > /lib/tls/i686/cmov/libc.so.6[0xb7e02a85] > > /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e064f0] > > /usr/lib/python2.5/site-packages/perl2.so[0xb7cc772d] > > python[0x80855a9] > > python(PyDict_SetItem+0x6e)[0x8086f8e] > > python(_PyModule_Clear+0x158)[0x8088bf8] > > python(PyImport_Cleanup+0x152)[0x80de3d2] > > python(Py_Finalize+0xbf)[0x80ea41f] > > python(Py_Main+0x468)[0x8058d68] > > python(main+0x22)[0x80587f2] > > /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dad450] > > python[0x8058761] > > ======= Memory map: ======== > > 08048000-08140000 r-xp 00000000 08:05 2613978 /usr/bin/python2.5 > > 08140000-08165000 rw-p 000f7000 08:05 2613978 /usr/bin/python2.5 > > 08165000-08284000 rw-p 08165000 00:00 0 [heap] > > b7900000-b7921000 rw-p b7900000 00:00 0 > > b7921000-b7a00000 ---p b7921000 00:00 0 > > b7a44000-b7a4e000 r-xp 00000000 08:05 1409036 /lib/libgcc_s.so.1 > > b7a4e000-b7a4f000 rw-p 0000a000 08:05 1409036 /lib/libgcc_s.so.1 > > b7a5b000-b7a68000 r-xp 00000000 08:05 3008570 > > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so > > b7a68000-b7a69000 rw-p 0000c000 08:05 3008570 > > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so > > b7a69000-b7a8a000 rw-p b7a69000 00:00 0 > > b7a8a000-b7b6b000 r--p 00000000 08:05 2638705 > > /usr/lib/locale/en_US.utf8/LC_COLLATE > > b7b6b000-b7b74000 r-xp 00000000 08:05 1426495 > > /lib/tls/i686/cmov/libcrypt-2.7.so > > b7b74000-b7b76000 rw-p 00008000 08:05 1426495 > > /lib/tls/i686/cmov/libcrypt-2.7.so > > b7b76000-b7b9d000 rw-p b7b76000 00:00 0 > > b7b9d000-b7cb8000 r-xp 00000000 08:05 2613267 > /usr/lib/libperl.so.5.8.8 > > b7cb8000-b7cbd000 rw-p 0011a000 08:05 2613267 > /usr/lib/libperl.so.5.8.8 > > b7cbd000-b7cbf000 rw-p b7cbd000 00:00 0 > > b7cbf000-b7ccb000 r-xp 00000000 08:05 705539 > > /usr/lib/python2.5/site-packages/perl2.so > > b7ccb000-b7ccc000 rw-p 0000b000 08:05 705539 > > /usr/lib/python2.5/site-packages/perl2.so > > b7ccc000-b7ccd000 r-xp 00000000 08:05 705537 > > /usr/lib/python2.5/site-packages/perl.so > > b7ccd000-b7cce000 rw-p 00000000 08:05 705537 > > /usr/lib/python2.5/site-packages/perl.so > > b7cce000-b7cd5000 r--s 00000000 08:05 2622378 > > /usr/lib/gconv/gconv-modules.cache > > b7cd5000-b7d14000 r--p 00000000 08:05 2638706 > > /usr/lib/locale/en_US.utf8/LC_CTYPE > > b7d14000-b7d97000 rw-p b7d14000 00:00 0 > > b7d97000-b7ee0000 r-xp 00000000 08:05 1426493 > > /lib/tls/i686/cmov/libc-2.7.so > > b7ee0000-b7ee1000 r--p 00149000 08:05 1426493 > > /lib/tls/i686/cmov/libc-2.7.so > > b7ee1000-b7ee3000 rw-p 0014a000 08:05 1426493 > > /lib/tls/i686/cmov/libc-2.7.so > > b7ee3000-b7ee6000 rw-p b7ee3000 00:00 0 > > b7ee6000-b7f09000 r-xp 00000000 08:05 1426497 > > /lib/tls/i686/cmov/libm-2.7.so > > b7f09000-b7f0b000 rw-p 00023000 08:05 1426497 > > /lib/tls/i686/cmov/libm-2.7.so > > b7f0b000-b7f0d000 r-xp 00000000 08:05 1426512 > > /lib/tls/i686/cmov/libutil-2.7.so > > b7f0d000-b7f0f000 rw-p 00001000 08:05 1426512 > > /lib/tls/i686/cmov/libutil-2.7.so > > b7f0f000-b7f10000 rw-p b7f0f000 00:00 0 > > b7f10000-b7f12000 r-xp 00000000 08:05 1426496 > > /lib/tls/i686/cmov/libdl-2.7.so > > b7f12000-b7f14000 rw-p 00001000 08:05 1426496 > > /lib/tls/i686/cmov/libdl-2.7.so > > b7f14000-b7f28000 r-xp 00000000 08:05 1426507 > > /lib/tls/i686/cmov/libpthread-2.7.so > > b7f28000-b7f2a000 rw-p 00013000 08:05 1426507 > > /lib/tls/i686/cmov/libpthread-2.7.so > > b7f2a000-b7f2c000 rw-p b7f2a000 00:00 0 > > b7f2d000-b7f2e000 rw-p b7f2d000 00:00 0 > > b7f2e000-b7f2f000 r--p 00000000 08:05 2638723 > > /usr/lib/locale/en_US.utf8/LC_NUMERIC > > b7f2f000-b7f30000 r--p 00000000 08:05 2637982 > > /usr/lib/locale/en_US.utf8/LC_TIME > > b7f30000-b7f31000 r--p 00000000 08:05 2637983 > > /usr/lib/locale/en_US.utf8/LC_MONETARY > > b7f31000-b7f32000 r--p 00000000 08:05 2646018 > > /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES > > b7f32000-b7f33000 r--p 00000000 08:05 2638724 > > /usr/lib/locale/en_US.utf8/LC_PAPER > > b7f33000-b7f34000 r--p 00000000 08:05 2638722 > > /usr/lib/locale/en_US.utf8/LC_NAME > > b7f34000-b7f35000 r--p 00000000 08:05 2637984 > > /usr/lib/locale/en_US.utf8/LC_ADDRESS > > b7f35000-b7f36000 r--p 00000000 08:05 2637985 > > /usr/lib/locale/en_US.utf8/LC_TELEPHONE > > b7f36000-b7f37000 r--p 00000000 08:05 2637986 > > /usr/lib/locale/en_US.utf8/LC_MEASUREMENT > > b7f37000-b7f38000 r--p 00000000 08:05 2637987 > > /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION > > b7f38000-b7f3a000 rw-p b7f38000 00:00 0 > > b7f3a000-b7f3b000 r-xp b7f3a000 00:00 0 [vdso] > > b7f3b000-b7f55000 r-xp 00000000 08:05 1409643 /lib/ld-2.7.so > > b7f55000-b7f57000 rw-p 00019000 08:05 1409643 /lib/ld-2.7.so > > bfb9e000-bfbb3000 rw-p bffeb000 00:00 0 [stack] > > Aborted > > > > -- > > Best regards, > > > > Kenny > > > > _______________________________________________ > > Zope-perl maillist - [email protected] > > https://mail.zope.org/mailman/listinfo/zope-perl > > > > > _______________________________________________ > Zope-perl maillist - [email protected] > https://mail.zope.org/mailman/listinfo/zope-perl > -- Tommy Ditlev Henriksen email: [email protected] --000325554e4610d276048319bbbc Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I look at it some time ago, and had some problems with pointer errors.<br><= br>I decided to use an JSON gw instead.<br><br>If any interrest Ill be happ= y to share!<br>=A0kr<br>=A0Tommy<br><br><div class=3D"gmail_quote">On Wed, = Mar 31, 2010 at 3:23 PM, DmitriKo <span dir=3D"ltr"><<a href=3D"mailto:d= [email protected]">[email protected]</a>></span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, = 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hey, Kenny.<br> <br> I offer to stop wasting your time on that cool by marginal solution.<br> <br> Please use old good tools for inter program communication.<br> <br> $ perl <a href=3D"http://test.pm" target=3D"_blank">test.pm</a> | python te= st.py<br> <br> as example where output from <a href=3D"http://test.pm" target=3D"_blank">t= est.pm</a> come to sys.stdin in python test.py<br> <br> use json, xml, text ... with easy.<br> <br> --<br> DmitriKo<br> <div><div></div><div class=3D"h5"><br> On Wed, Mar 31, 2010 at 4:01 PM, Kenny <<a href=3D"mailto:zhaowenliangpo= [email protected]">[email protected]</a>> wrote:<br> > Dear all,<br> ><br> > I have a question about pyperl.<br> ><br> > there is a perl module <a href=3D"http://test.pm" target=3D"_blank">te= st.pm</a>:<br> > #! /usr/bin/perl<br> > package tset<br> > sub Cal {<br> > my ($v1,$v2)=3D@_;<br> > my $result=3D$v1+$v2;<br> > }<br> > print "this is a test \n";<br> > 1;<br> ><br> > And there is a python file that calls the module above,<br> > import perl<br> > perl.require("test");<br> > #perl.call("Usage","<a href=3D"http://test1.pl" target= =3D"_blank">test1.pl</a>")<br> > #perl.call("test::Usage", "1")<br> > b=3Dperl.call("test::Cal", 1, 1)<br> > print b<br> ><br> > when run, I got a error message shown below: (can anyone tell me the r= eason?<br> > many thanks)<br> > ##################################error message####################<br= > > kenny@kenny-laptop:~/Desktop$ python test.py<br> > it is a test<br> > 2<br> > *** glibc detected *** python: free(): invalid pointer: 0xb7d7b1a0 ***= <br> > =3D=3D=3D=3D=3D=3D=3D Backtrace: =3D=3D=3D=3D=3D=3D=3D=3D=3D<br> > /lib/tls/i686/cmov/libc.so.6[0xb7e02a85]<br> > /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e064f0]<br> > /usr/lib/python2.5/site-packages/perl2.so[0xb7cc772d]<br> > python[0x80855a9]<br> > python(PyDict_SetItem+0x6e)[0x8086f8e]<br> > python(_PyModule_Clear+0x158)[0x8088bf8]<br> > python(PyImport_Cleanup+0x152)[0x80de3d2]<br> > python(Py_Finalize+0xbf)[0x80ea41f]<br> > python(Py_Main+0x468)[0x8058d68]<br> > python(main+0x22)[0x80587f2]<br> > /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dad450]<br> > python[0x8058761]<br> > =3D=3D=3D=3D=3D=3D=3D Memory map: =3D=3D=3D=3D=3D=3D=3D=3D<br> > 08048000-08140000 r-xp 00000000 08:05 2613978=A0=A0=A0 /usr/bin/python= 2.5<br> > 08140000-08165000 rw-p 000f7000 08:05 2613978=A0=A0=A0 /usr/bin/python= 2.5<br> > 08165000-08284000 rw-p 08165000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [he= ap]<br> > b7900000-b7921000 rw-p b7900000 00:00 0<br> > b7921000-b7a00000 ---p b7921000 00:00 0<br> > b7a44000-b7a4e000 r-xp 00000000 08:05 1409036=A0=A0=A0 /lib/libgcc_s.s= o.1<br> > b7a4e000-b7a4f000 rw-p 0000a000 08:05 1409036=A0=A0=A0 /lib/libgcc_s.s= o.1<br> > b7a5b000-b7a68000 r-xp 00000000 08:05 3008570<br> > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so<br> > b7a68000-b7a69000 rw-p 0000c000 08:05 3008570<br> > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so<br> > b7a69000-b7a8a000 rw-p b7a69000 00:00 0<br> > b7a8a000-b7b6b000 r--p 00000000 08:05 2638705<br> > /usr/lib/locale/en_US.utf8/LC_COLLATE<br> > b7b6b000-b7b74000 r-xp 00000000 08:05 1426495<br> > /lib/tls/i686/cmov/<a href=3D"http://libcrypt-2.7.so" target=3D"_blank= ">libcrypt-2.7.so</a><br> > b7b74000-b7b76000 rw-p 00008000 08:05 1426495<br> > /lib/tls/i686/cmov/<a href=3D"http://libcrypt-2.7.so" target=3D"_blank= ">libcrypt-2.7.so</a><br> > b7b76000-b7b9d000 rw-p b7b76000 00:00 0<br> > b7b9d000-b7cb8000 r-xp 00000000 08:05 2613267=A0=A0=A0 /usr/lib/libper= l.so.5.8.8<br> > b7cb8000-b7cbd000 rw-p 0011a000 08:05 2613267=A0=A0=A0 /usr/lib/libper= l.so.5.8.8<br> > b7cbd000-b7cbf000 rw-p b7cbd000 00:00 0<br> > b7cbf000-b7ccb000 r-xp 00000000 08:05 705539<br> > /usr/lib/python2.5/site-packages/perl2.so<br> > b7ccb000-b7ccc000 rw-p 0000b000 08:05 705539<br> > /usr/lib/python2.5/site-packages/perl2.so<br> > b7ccc000-b7ccd000 r-xp 00000000 08:05 705537<br> > /usr/lib/python2.5/site-packages/perl.so<br> > b7ccd000-b7cce000 rw-p 00000000 08:05 705537<br> > /usr/lib/python2.5/site-packages/perl.so<br> > b7cce000-b7cd5000 r--s 00000000 08:05 2622378<br> > /usr/lib/gconv/gconv-modules.cache<br> > b7cd5000-b7d14000 r--p 00000000 08:05 2638706<br> > /usr/lib/locale/en_US.utf8/LC_CTYPE<br> > b7d14000-b7d97000 rw-p b7d14000 00:00 0<br> > b7d97000-b7ee0000 r-xp 00000000 08:05 1426493<br> > /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li= bc-2.7.so</a><br> > b7ee0000-b7ee1000 r--p 00149000 08:05 1426493<br> > /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li= bc-2.7.so</a><br> > b7ee1000-b7ee3000 rw-p 0014a000 08:05 1426493<br> > /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li= bc-2.7.so</a><br> > b7ee3000-b7ee6000 rw-p b7ee3000 00:00 0<br> > b7ee6000-b7f09000 r-xp 00000000 08:05 1426497<br> > /lib/tls/i686/cmov/<a href=3D"http://libm-2.7.so" target=3D"_blank">li= bm-2.7.so</a><br> > b7f09000-b7f0b000 rw-p 00023000 08:05 1426497<br> > /lib/tls/i686/cmov/<a href=3D"http://libm-2.7.so" target=3D"_blank">li= bm-2.7.so</a><br> > b7f0b000-b7f0d000 r-xp 00000000 08:05 1426512<br> > /lib/tls/i686/cmov/<a href=3D"http://libutil-2.7.so" target=3D"_blank"= >libutil-2.7.so</a><br> > b7f0d000-b7f0f000 rw-p 00001000 08:05 1426512<br> > /lib/tls/i686/cmov/<a href=3D"http://libutil-2.7.so" target=3D"_blank"= >libutil-2.7.so</a><br> > b7f0f000-b7f10000 rw-p b7f0f000 00:00 0<br> > b7f10000-b7f12000 r-xp 00000000 08:05 1426496<br> > /lib/tls/i686/cmov/<a href=3D"http://libdl-2.7.so" target=3D"_blank">l= ibdl-2.7.so</a><br> > b7f12000-b7f14000 rw-p 00001000 08:05 1426496<br> > /lib/tls/i686/cmov/<a href=3D"http://libdl-2.7.so" target=3D"_blank">l= ibdl-2.7.so</a><br> > b7f14000-b7f28000 r-xp 00000000 08:05 1426507<br> > /lib/tls/i686/cmov/<a href=3D"http://libpthread-2.7.so" target=3D"_bla= nk">libpthread-2.7.so</a><br> > b7f28000-b7f2a000 rw-p 00013000 08:05 1426507<br> > /lib/tls/i686/cmov/<a href=3D"http://libpthread-2.7.so" target=3D"_bla= nk">libpthread-2.7.so</a><br> > b7f2a000-b7f2c000 rw-p b7f2a000 00:00 0<br> > b7f2d000-b7f2e000 rw-p b7f2d000 00:00 0<br> > b7f2e000-b7f2f000 r--p 00000000 08:05 2638723<br> > /usr/lib/locale/en_US.utf8/LC_NUMERIC<br> > b7f2f000-b7f30000 r--p 00000000 08:05 2637982<br> > /usr/lib/locale/en_US.utf8/LC_TIME<br> > b7f30000-b7f31000 r--p 00000000 08:05 2637983<br> > /usr/lib/locale/en_US.utf8/LC_MONETARY<br> > b7f31000-b7f32000 r--p 00000000 08:05 2646018<br> > /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES<br> > b7f32000-b7f33000 r--p 00000000 08:05 2638724<br> > /usr/lib/locale/en_US.utf8/LC_PAPER<br> > b7f33000-b7f34000 r--p 00000000 08:05 2638722<br> > /usr/lib/locale/en_US.utf8/LC_NAME<br> > b7f34000-b7f35000 r--p 00000000 08:05 2637984<br> > /usr/lib/locale/en_US.utf8/LC_ADDRESS<br> > b7f35000-b7f36000 r--p 00000000 08:05 2637985<br> > /usr/lib/locale/en_US.utf8/LC_TELEPHONE<br> > b7f36000-b7f37000 r--p 00000000 08:05 2637986<br> > /usr/lib/locale/en_US.utf8/LC_MEASUREMENT<br> > b7f37000-b7f38000 r--p 00000000 08:05 2637987<br> > /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION<br> > b7f38000-b7f3a000 rw-p b7f38000 00:00 0<br> > b7f3a000-b7f3b000 r-xp b7f3a000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [vd= so]<br> > b7f3b000-b7f55000 r-xp 00000000 08:05 1409643=A0=A0=A0 /lib/<a href=3D= "http://ld-2.7.so" target=3D"_blank">ld-2.7.so</a><br> > b7f55000-b7f57000 rw-p 00019000 08:05 1409643=A0=A0=A0 /lib/<a href=3D= "http://ld-2.7.so" target=3D"_blank">ld-2.7.so</a><br> > bfb9e000-bfbb3000 rw-p bffeb000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [st= ack]<br> > Aborted<br> ><br> > --<br> > Best regards,<br> ><br> > Kenny<br> ><br> </div></div>> _______________________________________________<br> > Zope-perl maillist =A0- =A0<a href=3D"mailto:[email protected]">Zope-= [email protected]</a><br> > <a href=3D"https://mail.zope.org/mailman/listinfo/zope-perl" target=3D= "_blank">https://mail.zope.org/mailman/listinfo/zope-perl</a><br> ><br> ><br> _______________________________________________<br> Zope-perl maillist =A0- =A0<a href=3D"mailto:[email protected]">Zope-perl@= zope.org</a><br> <a href=3D"https://mail.zope.org/mailman/listinfo/zope-perl" target=3D"_bla= nk">https://mail.zope.org/mailman/listinfo/zope-perl</a><br> </blockquote></div><br><br clear=3D"all"><br>-- <br>Tommy Ditlev Henriksen<= br>email: <a href=3D"mailto:[email protected]">[email protected]</a= ><br> --000325554e4610d276048319bbbc-- --===============9004421515182002211== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Zope-perl maillist - [email protected] https://mail.zope.org/mailman/listinfo/zope-perl --===============9004421515182002211==--