标签: jython

为什么有时Python子进程在运行进程后无法获得正确的退出代码?

我正在使用 Python 子进程在 Windows 7 上运行外部脚本。我正在尝试获取退出代码。


在情况 1 中,我运行一个 python 脚本test1.py

测试1.py

import sys
sys.exit(24)   <--exit code
Run Code Online (Sandbox Code Playgroud)

myscript1.py

import subprocess
process = subprocess.Popen(["python", "C:\\path\\to\\test1.py"], stdout=subprocess.PIPE)
process.wait()
print process.returncode
Run Code Online (Sandbox Code Playgroud)

在 Windows 命令提示符中,当我运行脚本时,我得到以下输出:

>python test1.py
>
>echo %errorlevel%
>24
>
>python myscript1.py
>24
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到在这种情况下子进程能够获得正确的退出代码。


在情况 2 中,我运行一个批处理文件test2.cmd

测试2.cmd

EXIT /B 56   <--exit code
Run Code Online (Sandbox Code Playgroud)

myscript2.py

import subprocess
process = subprocess.Popen(["C:\\path\\to\\test2.cmd"], stdout=subprocess.PIPE)
process.wait()
print process.returncode
Run Code Online (Sandbox Code Playgroud)

在 Windows 命令提示符中,当我运行脚本时,我得到以下输出:

>test2.cmd
>
>echo %errorlevel%
>56
>
>python myscript2.py
>56
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到在这种情况下子进程也能够获得正确的退出代码。


在案例 3 …

python windows subprocess jython sikuli

5
推荐指数
1
解决办法
7900
查看次数

Jython 2.7 与 Java 1.8 - 导入自定义 jar

我正在使用 jython 2.7 和 java,目的是围绕我的 jar 文件创建一个 python 包装器(我们称之为myJar.jar

这是我的 python 文件:

import sys
sys.path.append('/pathTo/myJar.jar')
from java.lang import Math #this works
from java.io import File # this works`

from com.myPackage.classes import myClass

print('trying to import myClass')
Run Code Online (Sandbox Code Playgroud)

我运行以下命令来执行此代码:

java -jar ~/pathTo/jython.jar jyTest.py

我收到一个 importError 说明:ImportError: No module named myPackage

除了使用之外sys.path.append(),我还尝试过:

java -jar ~/pathTo/jython.jar -Dpython.path=/pathTo/myJar.jar jyTest.py

java -cp ~/pathTo/jython.jar:~/pathTo/myJar.jar jyTest.py

java -classpath ~/pathTo/myJar.jar -jar ~/pathTo/jython.jar jyTest.py

我还尝试使用java -cp导出myJar.jar$CLASSPATH.

上述方法均无效。 …

python java jython jar jython-2.7

5
推荐指数
0
解决办法
1494
查看次数

在java中使用PythonInterpreter导入python包

我正在尝试使用 PythonInterpreter 在 java 代码(在 Netbeans 中)中使用 python 代码中的函数,当 python 代码中没有任何导入的包时它工作得很好,但是在我的代码中,有一个包需要导入“tweepy “我收到一个错误:

java代码:

  import org.python.util.PythonInterpreter; 
  import org.python.core.*;

  public class test {
  public static void main(String[] args) {

  PythonInterpreter interpreter = new PythonInterpreter();
  interpreter.execfile("python_code.py");
  PyFunction getCountFunc = (PyFunction)interpreter.get("funcTw", PyFunction.class);
  PyObject pyCount = getCountFunc.__call__(new PyString("Test String"));
  String realResult = (String) pyCount.__tojava__(String.class);

  }
 }
Run Code Online (Sandbox Code Playgroud)

python代码(python_code.py):

try:
  import json
except ImportError:
  import simplejson as json

import tweepy
import sys


def funcTw(str):
 # function body ...
Run Code Online (Sandbox Code Playgroud)

运行java代码时出错:

Exception in thread "main" Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python java jython pythoninterpreter

5
推荐指数
0
解决办法
691
查看次数

如何确定电子邮件是否为Base64编码?

我很难确定文本电子邮件的正文是否为base64编码.如果它然后使用这行代码; 利用jython 2.2.1

dirty=base64.decodestring(dirty)
Run Code Online (Sandbox Code Playgroud)

否则继续正常.

这是我的代码.哪些代码行允许我从电子邮件中提取此内容:

"Content-Transfer-Encoding:base64"

import email, email.Message
import base64

def _get_email_body(self):
    try:
        parts=self._email.get_payload()
        check=parts[0].get_content_type()
        if check=="text/plain":
            part=parts[0].get_payload()
            enc = part[0]['Content-Transfer-Encoding']
            if enc == "base64":
                dirty=base64.decodestring(dirty)
        elif check=="multipart/alternative":
            part=parts[0].get_payload()
            enc = part[0]['Content-Transfer-Encoding']
            if part[0].get_content_type()=="text/plain":
                dirty=part[0].get_payload()
                if enc == "base64":
                    dirty=base64.decodestring(dirty)
            else:
                return "cannot obtain the body of the email"
        else:
            return "cannot obtain the body of the email"
        return dirty
    except:
        raise
Run Code Online (Sandbox Code Playgroud)

好了,这个代码现在可以使用!谢谢大家

python email encoding jython email-headers

4
推荐指数
1
解决办法
6747
查看次数

Jython还是JRuby?

这是一个高级概念性问题.我有两个单独的代码库,用于相同的目的,一个用Python构建,另一个用Ruby构建.我需要开发一些可以在JVM上运行的东西.所以我有两个选择:将Python代码转换为Jython或将Ruby转换为JRuby.由于我不知道他们中的任何一个,我想知道是否有人可以给我一些指导.喜欢哪一个运行得更快,或者更重要的是哪一个有可用于轻松进行代码迁移的工具(.pyc到.jar文件)?

ruby python jython jruby

4
推荐指数
1
解决办法
5329
查看次数

Scala或Jython中多方法的替代方法

我经常遇到想要为我无法控制的类添加其他方法的问题.例如,我可能想要一个prettyPrint可以在没有统一api的不同对象类型上运行的函数(例如特殊__str__方法).

Nice语言和R实现这一使用多方法,避免了访问者模式很好.例如,Rplot()功能.各个程序员可以创建新类来定义数据类型(例如,网络图或股票行情数据).然后,辅助用户/程序员可以编写绘图功能来填写功能,即使他们无法访问图表或股票代码或其他绘图功能的代码.

鉴于我想在以后添加许多功能,使用class.method()似乎不可行.class_plot()每种类型的许多功能似乎也是一个坏主意.定义一个plot()检查类型的大函数是不可扩展的.

什么是多方法的替代方案?特别是,我对可能在Jython和Scala中工作的设计感兴趣.

scala jython

4
推荐指数
1
解决办法
1022
查看次数

如果我计划最终使用Jython,我应该将我的Python代码保留在2.x还是迁移到3.x?

我有一个用Python 2.6编写的大型基础架构,尽管缺乏向后兼容性,我最近还是尝试移植到3.1(比我预期的要平滑得多).

我最终希望将一些Python代码与我们拥有的许多基于Java的代码集成在一起,并且正在考虑尝试使用Jython.但是,从查看Jython教程,所有示例都是2.6语法(例如,print还不是函数).

Jython目前还是在不久的将来会支持Python 3.x语法吗?或者如果我想最终使用Jython,我应该回滚到2.6吗?

python jython

4
推荐指数
1
解决办法
227
查看次数

为什么使用"\"在jython中显示错误

我正在尝试使用Windows的复制命令,我们有目录,如c:\oracle.

在尝试执行此类操作时,我们收到以下错误:

source_file=folder+"\"
                          ^
SyntaxError: Lexical error at line 17, column 23.  Encountered: "\r" (13), after : ""
Run Code Online (Sandbox Code Playgroud)

这里的文件夹是我的c:\ oracle的路径,并在尝试向其添加文件时:

source=folder+"\"+src_file
Run Code Online (Sandbox Code Playgroud)

我无法这样做.关于如何解决这个问题的任何建议?

我试过/但是我的副本窗口调用源代码os.command正在获取"the syntax is incorrect"并且解决它的唯一方法是使用\但是我在这样做时遇到上述错误.

请建议.谢谢你的帮助

谢谢.

jython

4
推荐指数
1
解决办法
3277
查看次数

JVM和JRuby等JVM实现如何击败原生同行?

我在这里观看这个视频,Robert Nicholson讨论了P8,这是JVM上的PHP实现.在某些时候,他提到他们的目标是在未来的某个时候超越原生PHP的性能.

他提到了JRuby和Jython,它起初比他们的同类人慢,但最终超过了他们.Quercus是JVM的另一个PHP解释器,声称比mod_php 快4倍,值得注意.

这是否意味着JVM比C慢的一般想法是错误的,或者原始C实现中是否存在缺陷?

performance jvm jython jruby quercus

4
推荐指数
1
解决办法
1156
查看次数

Jython的Numpy模拟

我正在考虑将科学代码从Python移植到Jython,我感兴趣的是,是否存在Jython的数学库,它们是:

  1. 免费用于商业用途
  2. 为Jython设计了方便的矩阵语法 - 即允许切片,二进制和整数索引,+ - */matlab和numpy等操作.

机器学习和统计路线的额外可用性将是一个优势(或者可以轻松地将数据转换为某些通用数据格式,主要Java机器学习库可以理解).

提前感谢您提供有关此类库的任何信息.

python numpy jython matrix slice

4
推荐指数
1
解决办法
2391
查看次数