我正在使用 Jython 2.5.1 和 JSR-223(即 javax.script 包),并且我希望返回 Python 脚本的最后一行。例如,评估此脚本后:
class Multiplier:
  def multiply(self, x, y):
    return x * y
Multiplier().multiply(5, 7)
我应该返回 35,但我得到的是 null。另一方面,它与其他测试一起使用:
5 * 7
我究竟做错了什么?
这是 Java 代码:
public static void main(String[] args) throws Exception {
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
    FileReader f = new FileReader("Multiplier.py");
    Object result = engine.eval(f);
    //assert(result == 35);
}
PS:它与 JRuby、Groovy 和 Rhino 一起工作得很好,即总是返回最后一行。
提前致谢。
他们有什么方法可以优化Jython而无需求助于分析或显着更改代码?
具体是有没有可以传递给编译器的标志,或紧密循环中的代码提示.
在下面的代码中,我只需使用jython从java代码执行test.py.
public static void main(String[] args) {
  org.python.util.PythonInterpreter python = new org.python.util.PythonInterpreter();
  python.execfile("test.py");
  ...
我的问题是test.py需要在运行jar文件的同一目录中.
我需要将这个test.py捆绑在jar中,并且仍然可以使用jython执行它.  
在如何使用python调用jar文件中的python脚本中建议的方法?使用ClassLoader类中的getResourceAsStream方法读取字符串中的脚本对我不起作用,因为我的test.py导入了更多捆绑在jar中的python脚本.
刚接触java和jython我真的很困惑.
任何帮助将受到高度赞赏..!
在学习python(cpython)并使用此页面搜索tkinter 小部件的选项,方法和模式之后,我开始在jython中开发,因为来自java的javax.swing模块可以帮助我创建独立于平台的GUI.
我的问题是:是否有一个像我上面提到的那个页面,它提出了摆动对象的选项和方法?
我想使用MonkeyRunner生成MotionEvent(来自屏幕触摸).我已经阅读了http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html上的信息 .
问题是这个jython程序:
from com.android.monkeyrunner import MonkeyRunner
if __name__ == '__main__':
   # Connects to the current device, returning a MonkeyDevice object
   device = MonkeyRunner.waitForConnection()
执行时出现以下错误:
Traceback (most recent call last):
  File "C:\Documents and Settings\jjungb00\python\workspace\monkey\src\runner.py",     line 6, in <module>
    from com.android.monkeyrunner import MonkeyRunner
java.lang.NoClassDefFoundError: com/google/common/base/Predicate
at com.android.monkeyrunner.MonkeyRunner.classDictInit(MonkeyRunner.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyJavaType.init(PyJavaType.java:534)
at org.python.core.PyType.createType(PyType.java:1264)
at org.python.core.PyType.addFromClass(PyType.java:1201)
at org.python.core.PyType.fromClass(PyType.java:1291)
...跳过一些堆栈跟踪...
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Predicate
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at …我创建了一个脚本来执行的东西在联机模式下,为WebLogic Server 12.1.1.
我显然搞砸了一些东西,我想要堆栈跟踪,以便我可以分析出错的地方.
我现在正在做这样的事情:
try:
    connect("user","pass","t3://localhost:7001")
    messThingsUp()
except:
    dumpStack()
    rollback()
而不是堆栈跟踪我得到:"没有堆栈跟踪可用".
请帮忙
谢谢,你们统治!
操作系统:Windows 7。Jython 2.7.0“最终版本”。
for token in sorted_cased.keys():
    freq = sorted_cased[ token ]
    if freq > 1:
        print( 'token |%s| unicode? %s' % ( token, isinstance( token, unicode ), ) )
        if re.search( ur'\p{L}+', token ):
            print( '  # cased token |%s| freq %d' % ( token, freq, ))
sorted_cased是一个显示令牌出现频率的字典。这里我试图筛去话,其与频率发生(仅Unicode字符)> 1.(NB我使用了re.match而不是search但search应检测在事件1个这样\ p {L} token)
示例输出:
token |Management| unicode? True
token |n| unicode? True
token |identifiés| unicode? True
token |décrites| unicode? True
token |agissant| …可能存在断言失败的Python实现:
assert all(byte in range(256) for byte in any_bytes_object) # Python 3 semantics 
assert all(byte in range(256) for byte in map(ord, any_bytes_object)) # Python 2
POSIX明确指定CHAR_BIT == 8(每字节8位).Python中有类似的保证吗?它在某处记录了吗?
如果bytes没有定义name(在旧的Python版本上),例如,在Jython 2.5上,那么问题是关于str类型(bytestrings),即bytes = str在Python 2上.
当尝试获取 WebSphere Application Server 中应用程序的状态时,我希望有多个返回的 mbean。然而,WAS 只返回第一个结果并丢弃其余的结果。
[wasadmin@servername01 ~]$ Run_wsadmin.sh -f wsadmin_Check_App_Status.py
WASX7209I: Connected to process "dmgr" on node PRDDMGR using SOAP connector;  The type of process is: DeploymentManager
WASX7026W: String "type=Application,name=AMTApp,*" corresponds to 6 different MBeans; returning first one.
我正在运行的脚本如下所示:
app_name = AppName
app_status = AdminControl.completeObjectName('type=Application,name=' + app_name + ',*').split('\n')
for status in app_status :
  print( status )
# end of For status in app_status
WebSphere 中是否有一些设置,或者我是否需要将一些特殊的库导入到我的脚本中?
我应该编写一个函数来查找给定数量的狗需要的鞋子数量。它可以很容易地用乘法来完成,但我们需要使用递归,所以我有
def dogShoes(n):
    total = 0
    if n>0:
        shoes =   n + dogShoes(n)
        total = total + 1
        if total == 4:
            return shoes
但我现在意识到第 4 行将走向无穷大,而我认为会阻止它的底部甚至不会实现。有没有办法说 when totalis 4,停止并返回答案而不shoes走向无穷大?
jython ×10
python ×7
java ×4
android ×1
jar ×1
jcomponent ×1
jsr223 ×1
micropython ×1
monkeyrunner ×1
optimization ×1
predicate ×1
pypy ×1
recursion ×1
regex ×1
swing ×1
unicode ×1
websphere ×1
wlst ×1