该程序应该采用图像的轮廓,然后将其分成不同的象限,然后对其进行着色,例如Andy Warhol Marilyn Monroe图片.
直到"Warholize"功能的每个功能都有效,但是在我不知道该怎么做c=getPixel(picEdge,x,y)的warholize功能下它会被卡住.任何帮助将不胜感激.它应该做"让c为位于x,y的picEdge中像素的颜色"
def main():
pic= makePicture( pickAFile() )
show( pic )
threshold= 10
edgePic= makeOutline( pic, threshold )
warholize(pic)
show(warholize(pic))
def difference( a, b ):
if a > b :
return a - b
else:
return b - a
def intensity( px ) :
r= getRed( px )
g= getBlue( px )
b= getGreen( px )
avg= ( r + g + b ) / 3
return avg
def makeOutline( pic, threshold ): …Run Code Online (Sandbox Code Playgroud) 我最近开始学习Python并且开始学习Jython这个术语.从Google搜索结果中,我得出结论,这确实是一个非常重要的术语.使用Jython编程/编码的经验是什么?
我xml.sax在一个大型XML文件(800 MB)上对Jython 中的解析器进行了简单的测试,并遇到以下错误:
Traceback (most recent call last):
File "src/project/xmltools.py", line 92, in <module>
sys.exit(main())
File "src/project/xmltools.py", line 87, in main
parser.parse(open(argv[1], "r"))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/drivers2/drv_javasax.py", line 146, in parse
self._parser.parse(JyInputSourceWrapper(source))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/drivers2/drv_javasax.py", line 59, in fatalError
self._err_handler.fatalError(_wrap_sax_exception(exc))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/handler.py", line 38, in fatalError
raise exception
xml.sax._exceptions.SAXParseException: <unknown>:1:1: The parser has encountered more than "64,000" entity expansions in this document; this is the limit imposed by the application.
Run Code Online (Sandbox Code Playgroud)
这个"应用程序强加的限制"有什么问题?如何覆盖它?
我试图使用Java XML库nu.xom并遇到同样的错误.
我正在测试Jython for Android取自这里http://code.google.com/p/jython-for-android/
不幸的是我在发布期间遇到了问题...我尝试在我的一个项目中导入所有库,并在方法onCreate of my activity中输入以下代码:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("print 'hello from Jython!' ");
Run Code Online (Sandbox Code Playgroud)
这段代码应该可以工作(就像在标准java中一样),但是我得到了这个:
Traceback (innermost last):
(no code object) at line 0
java.lang.NullPointerException
at org.python.core.BytecodeLoader.makeCode(BytecodeLoader.java:104)
at org.python.core.Py.compile_flags(Py.java:1685)
at org.python.core.Py.compile_flags(Py.java:1698)
at org.python.core.Py.compile_flags(Py.java:1706)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:135)
at org.python.util.InteractiveConsole.interact(JythonForAndroidTest.java:29)
Run Code Online (Sandbox Code Playgroud)
我还从repo下载了最后一个版本,但没有任何变化...我将构建目标设置为2.1update ...
可能是什么?任何人都有这个lib的经验吗?
提前谢谢^^
干杯
我正在使用Android模拟器运行自动化测试,该模拟器使用Python编写的Monkey脚本驱动应用程序.该脚本将文件复制到模拟器上,单击应用程序中的按钮并根据软件在其操作期间触发的活动做出反应.该脚本应该运行几千次循环,所以我循环运行adb工具来复制文件,启动活动,通过调用设备上的getProperty方法来查看软件的反应.参数'am.current.comp.class'.所以这是我的脚本的一个非常简化的版本:
for target in targets:
androidSDK.copyFile(emulatorName, target, '/mnt/sdcard')
# Runs the component
device.startActivity(component='com.myPackage/com.myPackage.myactivity')
while 1:
if device.getProperty('am.current.comp.class') == 'com.myPackage.anotheractivity':
time.sleep(1) # to allow the scree to display the new activity before I click on it
device.touch(100, 100, 'DOWN_AND_UP')
# Log the result of the operation somewhere
break
time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)
(androidSDK是我编写的一个小类,包含一些实用程序函数,用于使用adb工具复制和删除文件).
有时,脚本会崩溃,例如(我正在遗漏完整的堆栈跟踪)
[com.android.chimpchat.adb.AdbChimpDevice]com.android.ddmlib.ShellCommandUnresponsiveException
Run Code Online (Sandbox Code Playgroud)
要么
[com.android.chimpchat.adb.AdbChimpDevice] Unable to get variable: am.current.comp.class
[com.android.chimpchat.adb.AdbChimpDevice]java.net.SocketException: Software caused connectionabort: socket write error
Run Code Online (Sandbox Code Playgroud)
我已经读过,有时设备的套接字连接变得不稳定,可能需要重启(adb start-server和adb kill-server非常有用).
我遇到的问题是这些工具抛出Java异常(Monkey在Jython中运行),但我不确定这些是如何从我的Python脚本中捕获的.我希望能够确定脚本内部失败的确切原因并恢复情况,以便我可以继续进行迭代(例如重新建立连接?例如,重新初始化我的设备与另一个调用到MonkeyRunner.waitForConnection就足够了吗?).
有任何想法吗?
非常感谢,Alberto
编辑.我想我已经提到我发现有可能在Jython脚本中捕获特定于Java的异常,如果有人需要这个:
from java.net import SocketException
...
try:
... …Run Code Online (Sandbox Code Playgroud) 在Java中,我可以说
Thread t = new Thread(){
public void run(){ // do stuff }
}
Run Code Online (Sandbox Code Playgroud)
(或类似的东西)声明一个内联的匿名类.这对于制作事件处理程序或其他回调类型的东西非常有用,在任何合理的语言中,首先不需要对象拥有它们.
我在Jython中面临同样的问题 - 我想定义一个事件处理程序,但我不想构建一个完整的独立类来执行此操作.
理想情况下,我只能传递一个lambda并完成它,但如果这是可能的,我无法在文档中的任何地方找到它.
在有人开始咆哮之前:
现在提出一个问题:虽然Java一直是我的首选语言,但过去几周我已经看到我转向Jython以满足我的大部分需求.自问世以来,我的问题实际上分为两个,我很想得到一个明确的答案.
A.可以在jython中按原样导入python模块吗?我在不同的论坛上看过很多这样的问题,但从未见过明确的回答.我想知道Python和Jython是否存在一些可能不允许这样做的基本差异,以及是否可以在没有任何修改的情况下在Jython脚本中导入Python模块.
B.如何在Java中使用Jython类?一个简单的网络搜索显示,曾经有一个传说中的实体被称为jythonc可以将python代码编译为java字节码,但此后它已经灭绝了.从Java访问jython代码的唯一另一种方法是使用JSR 223来编写脚本,ScriptEngine这引发了以下问题:是否仍然可以使用我在Java 中用Jython定义的类?
在将此标记为重复之前,请阅读完整的主题
OS - Windows XP
Primary Language - Java
Scripting Language - Jython
IDE - Intellij Idea
Python Plugin - Pycharm
Run Code Online (Sandbox Code Playgroud)
我正在尝试远程调试我在Java中运行的应用程序并使用Jython作为脚本语言.我按照以下链接中提到的步骤
http://www.jetbrains.com/pycharm/webhelp/run-debug-configuration-python-remote-debug.html#commentsSection
然而,我正在低于严重警告 -
pydev调试器:严重警告:这个版本的python似乎被错误编译(内部生成的文件名不是绝对的)
pydev调试器:调试器可能仍然可以运行,但它会工作
得更慢并且可能会错过断点pydev调试器:相关错误:http:/ /bugs.python.org/issue1666807
调试器不会在断点处停止.
我搜索了许多论坛以寻找可能的解决方案 -
这些都不适合我.
我试图在Jython中创建并转换对象,我收到以下错误:
Exception in thread "MainThread" java.lang.ClassCastException: org.python.core.PySingleton cannot be cast to resources.ixia.IxNetType
at resources.ixia.IxNetFactory.create(IxNetFactory.java:34)
at resources.ixia.IxiaTest.run(IxiaTest.java:34)
at resources.ixia.IxiaTest.<init>(IxiaTest.java:14)
at resources.ixia.IxiaTest.main(IxiaTest.java:42)
Run Code Online (Sandbox Code Playgroud)
这是代码:
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public class IxNetFactory {
private PyObject ixNetClass;
private PythonInterpreter interpreter;
public IxNetFactory(String script_dir) {
script_dir=script_dir.replace("\\", "/");
interpreter = new PythonInterpreter();
interpreter.exec("import sys");
interpreter.exec("sys.path.append('"+script_dir+"')");
interpreter.exec("import time");
interpreter.exec("import os");
interpreter.exec("from ixnetworks import IxNet");
//interpreter.exec("from utils import sm");
//interpreter.exec("from utils import cpf");
ixNetClass = interpreter.get("IxNet");
}
/*
* Create an IxNet object
*
* Usage: ixNet.create();
*/
public …Run Code Online (Sandbox Code Playgroud) 我想知道在安装程序自动化期间是否有人通过UAC弹出窗口实现自动化?
我有一个现有的自动安装程序代码,但由于Sikuli在此步骤中未使用键盘/鼠标,因此在UAC区域失败。
有人在这里有运气吗?还是在Jython没有办法做到这一点?
谢谢