Python论坛  - 讨论区

标题:RE: [python-chinese] jython编译出错

2005年04月08日 星期五 16:26

lifr lifr_sh at yeah.net
Fri Apr 8 16:26:42 HKT 2005

你装的是j2se还是j2re,我用的是j2se 1.4.2,没有问题哇

-----Original Message-----
From: python-chinese-bounces at lists.python.cn
[mailto:python-chinese-bounces at lists.python.cn] On Behalf Of python_user
Sent: Friday, April 08, 2005 4:15 PM
To: python-chinese
Subject: [python-chinese] jython编译出错


python-chinese我的系统是windows XP SP2、sun J2se 1.4.2.07、Jython 2.1
------------------------------------------------------------------------
---------
C:\jython21\Demo\applet>c:\jython21\jythonc --core --deep --jar
appletdemo.jar * .py processing ButtonDemo processing pawt.__init__
processing ButtonFontDemo processing CheckboxDemo processing ChoiceDemo
processing Converter processing CoordinatesDemo processing HelloApplet
processing HelloWorld processing LabelDemo processing ListDemo

Required packages:
  java.applet
  java.awt.event

Creating adapters:
  java.awt.event.WindowListener used in __init__
  java.awt.event.ItemListener used in ChoiceDemo, ListDemo
  java.awt.event.ActionListener used in ButtonDemo, ButtonFontDemo,
ListDemo
  java.awt.event.MouseListener used in CoordinatesDemo

Creating .java files:
  HelloWorld module
    HelloWorld extends java.applet.Applet
  ButtonFontDemo module
    ButtonFontDemo extends java.applet.Applet
  HelloApplet module
    HelloApplet extends java.applet.Applet
  __init__ module
  ButtonDemo module
    ButtonDemo extends java.applet.Applet
  LabelDemo module
    LabelDemo extends java.applet.Applet
  CheckboxDemo module
    CheckboxDemo extends java.applet.Applet
  ChoiceDemo module
    ChoiceDemo extends java.applet.Applet
  ListDemo module
    ListDemo extends java.applet.Applet
  Converter module
    ConversionPanel extends java.awt.Panel implements
java.awt.event.ActionListe ner, java.awt.event.AdjustmentListener, java.
awt.event.ItemListener
    Converter extends java.applet.Applet
  CoordinatesDemo module
    CoordinateArea extends java.awt.Canvas
    FramedArea extends java.awt.Panel
    CoordinatesDemo extends java.applet.Applet

Compiling .java to .class...
Compiling with args: ['C:\\Program
Files\\Java\\j2re1.4.2_07\\bin\\javac', '-cla sspath',
'C:\\jython21\\jython.jar;;.\\jpywork;;C:\\jython21\\Tools\\jythonc;C:\
\jython21\\Demo\\applet\\.;C:\\jython21\\Lib;C:\\jython21',
'.\\jpywork\\HelloWo rld.java', '.\\jpywork\\ButtonFontDemo.java',
'.\\jpywork\\HelloApplet.java', '. \\jpywork\\pawt\\__init__.java',
'.\\jpywork\\ButtonDemo.java', '.\\jpywork\\Lab elDemo.java',
'.\\jpywork\\CheckboxDemo.java', '.\\jpywork\\ChoiceDemo.java', '.
\\jpywork\\ListDemo.java', '.\\jpywork\\Converter.java',
'.\\jpywork\\Coordinate sDemo.java'] 1  java.io.IOException:
CreateProcess: "C:\Program Files\Java\j2re1.4.2_07\bin\j avac"
-classpath
C:\jython21\jython.jar;;.\jpywork;;C:\jython21\Tools\jythonc;C:
\jython21\Demo\applet\.;C:\jython21\Lib;C:\jython21
.\jpywork\HelloWorld.java .\ jpywork\ButtonFontDemo.java
.\jpywork\HelloApplet.java .\jpywork\pawt\__init__.j ava
.\jpywork\ButtonDemo.java .\jpywork\LabelDemo.java
.\jpywork\CheckboxDemo.ja va .\jpywork\ChoiceDemo.java
.\jpywork\ListDemo.java .\jpywork\Converter.java .\
jpywork\CoordinatesDemo.java error=2

Consider using the -C/--compiler command line switch, or setting the
property python.jythonc.compiler in the registry. ERROR DURING JAVA
COMPILATION... EXITING C:\jython21\Demo\applet>
------------------------------------------------------------------------
---------
这是为什么?
 				

        python_user
        python_user at yahoo.com.cn
          2005-04-08



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月08日 星期五 16:28

Bruce Who whoonline at msn.com
Fri Apr 8 16:28:18 HKT 2005

lifr:

	在O'Relly的Python语言编程一本中提到过这个,不过这不是“优化措施”。

======= 2005-04-08 15:53:50 lifr wrote: =======

>终于调试出来了,用了Pythonwin(为什么,最终还是要用我最不想用的*win*).
>问题是这样开始的:
>我发现我的一个xml到object的转换程序转换出来的结果总是不正确,具体是一个
>list的对象多了(一些本不应该在这个list里面出现的object也在这个lit里面出
>现)
>这个转换程序由于有交叉的递归调用,所以特别难调试,我用过print
>statemetn,pdb,idle,pythonwin。
>
>折腾了几乎一天,刚才终于发现了“罪魁祸首”,那就是python compiler 的某种
>优化措施"搞的鬼"
>1 如果你的某个class的__init__的某个缺省参数是一个list,且用[]赋初值,那
>么很可能会出现每一个使用了缺省参数初始化的object都“共享”了同一个list.
>2 同样的情况出现在递归调用的函数上。
>3 同样的情况也出现在map上,也就是缺省参数是map
>
>这绝对不是你想要的!!!
>
>我给出一个例子:
>=============================exp1
>def loop(i, l=[]):
>    if i<=0: return
>    print id(l)
>    loop(i-1)
>
>loop(4)
>>>>>>>>output>>>>>>>>>>
>19538688
>19538688
>19538688
>19538688
>=============================exp2
>def loop(i):
>    if i<=0: return
>    l = []
>    print id(l)
>    loop(i-1)
>
>loop(4)
>>>>>>>>output>>>>>>>>>>
>19538688
>19538288
>19538808
>19538608
>
>我不知道这是不是一个 known-issue,反正把我是害苦了,写出来让不知道的朋友
>不要在犯这样的错。
>我的解决办法是用这样的表达式:
>def __init__(self, argList=None):
>	self.myList = argList or []
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese
>

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

        Bruce Who
        whoonline at msn.com
          2005-04-08


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月08日 星期五 16:55

limodou limodou at gmail.com
Fri Apr 8 16:55:03 HKT 2005

的确不是优化造成的。而是python的特点,一次装入或一次执行。象导入模块,导入过一次,下次不再导入。函数缺省参数,初始化一次,不再初始化第二次。

On Apr 8, 2005 4:28 PM, Bruce Who <whoonline at msn.com> wrote:
> lifr:
> 
>         在O'Relly的Python语言编程一本中提到过这个,不过这不是"优化措施"。
> 
> ======= 2005-04-08 15:53:50 lifr wrote: =======
> 
> >终于调试出来了,用了Pythonwin(为什么,最终还是要用我最不想用的*win*).
> >问题是这样开始的:
> >我发现我的一个xml到object的转换程序转换出来的结果总是不正确,具体是一个
> >list的对象多了(一些本不应该在这个list里面出现的object也在这个lit里面出
> >现)
> >这个转换程序由于有交叉的递归调用,所以特别难调试,我用过print
> >statemetn,pdb,idle,pythonwin。
> >
> >折腾了几乎一天,刚才终于发现了"罪魁祸首",那就是python compiler 的某种
> >优化措施"搞的鬼"
> >1 如果你的某个class的__init__的某个缺省参数是一个list,且用[]赋初值,那
> >么很可能会出现每一个使用了缺省参数初始化的object都"共享"了同一个list.
> >2 同样的情况出现在递归调用的函数上。
> >3 同样的情况也出现在map上,也就是缺省参数是map
> >
> >这绝对不是你想要的!!!
> >
> >我给出一个例子:
> >=============================exp1
> >def loop(i, l=[]):
> >    if i<=0: return
> >    print id(l)
> >    loop(i-1)
> >
> >loop(4)
> >>>>>>>>output>>>>>>>>>>
> >19538688
> >19538688
> >19538688
> >19538688
> >=============================exp2
> >def loop(i):
> >    if i<=0: return
> >    l = []
> >    print id(l)
> >    loop(i-1)
> >
> >loop(4)
> >>>>>>>>output>>>>>>>>>>
> >19538688
> >19538288
> >19538808
> >19538608
> >
> >我不知道这是不是一个 known-issue,反正把我是害苦了,写出来让不知道的朋友
> >不要在犯这样的错。
> >我的解决办法是用这样的表达式:
> >def __init__(self, argList=None):
> >       self.myList = argList or []
> >_______________________________________________
> >python-chinese list
> >python-chinese at lists.python.cn
> >http://python.cn/mailman/listinfo/python-chinese
> >
> 
> = = = = = = = = = = = = = = = = = = = =
> 
> 
> Bruce Who
> whoonline at msn.com
> 2005-04-08
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou
My Sina Blog: http://blog.sina.com.cn/blog/1148608914
New Google Maillist: http://groups-beta.google.com/group/python-cn

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号