标签: jython

如何让 emacs 在确定打开文件的模式时忽略 shebang (#!/some/interpreter)

我正在编辑旨在由 Jython 执行的 python 文件,以便它们在文件顶部具有适当的 shebang:

#!/usr/bin/jython
Run Code Online (Sandbox Code Playgroud)

这会导致文件以 jython 模式打开。但是,我想使用 python 模式。除了删除 shebang 和恢复缓冲区之外,我似乎无法以任何方式使缓冲区进入 python 模式并退出 jython 模式。即使运行python 模式也无法实现此目的(缓冲区仍处于 jython 模式)。我可以放置某种类型的钩子来忽略 .py 文件的 shebang 吗?

如果重要的话,我正在使用 emacs-22。

python emacs jython

3
推荐指数
1
解决办法
479
查看次数

在Jython中使用多处理2.6.2.1包

我是Jython/Python世界的新手.我正在尝试在Jython中安装多处理包.但是我收到了easy_install的返回消息

Setup script exited with error: Compiling extensions is not supported on Jython
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在Jython中安装这个包吗?

python jython

3
推荐指数
1
解决办法
1904
查看次数

Jython 将图片转换为灰度然后取反

请耐心等待,我几周前才开始使用 python。

我正在使用 JES。

我做了一个将图片转换为灰度的函数。我为每种颜色 r 和 r1、g 和 g1、b 和 b1 创建了两个名称。这背后的想法是将原始值保留在内存中,以便图片可以恢复为其原始颜色。

def grayScale(pic):
  for p in getPixels(pic):
    r = int(getRed(p))
    g = int(getGreen(p))
    b = int(getBlue(p))//I have tried this with and without the int()
    r1=r
    g1=g
    b1=b
    new = (r + g + b)/3
    color= makeColor(new,new,new)
    setColor(p, color)


def restoreColor(pic):
  for p in getPixels(pic):
    setColor (p, makeColor(r1,g1,b1))
Run Code Online (Sandbox Code Playgroud)

它不起作用。 The error: "local or global name could not be found."

我明白为什么我会收到这个错误。

但是,如果我尝试在 restoreColor 中定义它们,它将给出灰度值。

我明白为什么我会收到这个错误,但不知道如何格式化我的代码,以保存名称值。我查看了有关局部和全局变量/名称的问题;但我无法在我学到的基本语法中弄清楚如何做到这一点。

问题是:

如何创建名称并获取原始(红色、绿色、蓝色)的值,然后我可以在另一个函数中使用它们?我尝试过的一切都返回了更改后的(灰度)值。谢谢

python jython grayscale invert jes

3
推荐指数
1
解决办法
9982
查看次数

通过传递参数和结果从 Java 调用 Python 代码

任何人都可以向我展示一个通过传递参数并返回结果来从 java 代码调用 python 脚本的工作简单示例(java + python 代码)?

python java parameters jython

3
推荐指数
1
解决办法
8276
查看次数

从Jython导入jar

我必须承认,我对Jython导入逻辑感到有些困惑.

我现在可以手动将jar一个一个地添加到sys.path但是我有一大堆这些,这非常痛苦.

添加包含jar的目录显然不起作用.

最好的方法是什么?

jython

3
推荐指数
1
解决办法
1514
查看次数

使用 Spring Boot 打包时找不到 Jython 模块?

我正在使用 Spring Boot、Jython 和 Pygments 与 Maven 开发一个副项目,并且在 Maven 打包步骤之后尝试启动应用程序时遇到奇怪的错误。

在 IDE ( Eclipse Luna ) 中以及使用时启动mvn spring-boot:run在初始开发过程中使用时都成功运行。

使用 创建可执行 jar 后spring-boot-maven-plugin,导航到结果target目录并使用java -jar app-0.0.1.jar- 启动,我看到错误:

2015-12-07 16:05:11.131  INFO 6890 --- [           main] app.Application                      : Starting Application v0.0.1 on localhost with PID 6890 (/Users/me/Code/EclipseWorkspaces/app/app-0.0.1.jar started by me in /Users/me/Code/EclipseWorkspaces/app/target)
2015-12-07 16:05:11.135  INFO 6890 --- [           main] app.Application                      : No profiles are active
2015-12-07 16:05:12.418  INFO 6890 --- [           main] org.eclipse.jetty.server.Server          : jetty-9.2.14.v20151106
2015-12-07 …
Run Code Online (Sandbox Code Playgroud)

jython jetty spring-boot

3
推荐指数
1
解决办法
1737
查看次数

只需导入一次即可通过 Java 运行 Python 脚本

2020 年 4 月更新:我接受了下面的答案,因为它为我的问题提出了一个非常好的和简单的解决方案,但我的代码从未起作用!如果有人已经建立了类似的东西,请联系我!


我有一个简单的脚本my-script.py,它使用编写的特定库非常快速地进行一些计算Python

import sys
import special-library

def fun(x):
  do something

fun(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)

在我的Java代码中,我在代码的不同部分多次使用/调用此脚本,使用该ProcessBuilder方法,这意味着我只需运行命令python my-script.py argument。这意味着每次调用这个脚本时,我都必须执行import其中最耗时的命令(计算部分实际上更快)。

有没有办法让我只调用一次导入?我看了一点Jython- 是否可以编写一个类或一些可以启动的东西并进行一次导入,然后每次我想做计算部分(fun)时调用它的函数?有没有人做过类似的事情或对此有任何其他解决方案?

首次尝试实施

我试图编写一个“管道”Java 类,它将执行一次 python 脚本。现在脚本从 stdin 连续读取,当它获得 input 时argument,它会进行计算并返回结果:

import sys
import special-library

def fun(x):
  do something
  print('END')

for arg in sys.stdin:
  fun(arg)
Run Code Online (Sandbox Code Playgroud)

当我从命令行测试它并为其提供输入参数时,这当然有效。

Java类如下:

package my.package;
import java.io.*;

public class PythonScriptExecuter {

    private static BufferedReader pythonToJavaReader;
    private …
Run Code Online (Sandbox Code Playgroud)

python java import jython

3
推荐指数
1
解决办法
415
查看次数

email.retr在电子邮件正文中包含中文字符时检索奇怪的= 20个字符

    self.logger.info(msg)
    popinstance=poplib.POP3(self.account[0])
    self.logger.info(popinstance.getwelcome())
    popinstance.user(self.account[1])
    popinstance.pass_(self.account[2])
    try:
        (numMsgs, totalSize)=popinstance.stat()
        self.logger.info("POP contains " + str(numMsgs) + " emails")
        for thisNum in xrange(1, numMsgs + 1):
            try:
                (server_msg, body, octets)=popinstance.retr(thisNum)
            except:
                self.logger.error("Could not download email")
                raise
            text="\n".join(body)
            mesg=StringIO.StringIO(text)
            msg=rfc822.Message(mesg)
            MessageID=email.Utils.parseaddr(msg["Message-ID"])[1]
            self.logger.info("downloading email " + MessageID)
            emailpath=os.path.join(self._emailpath + self._inboxfolder + "\\" + self._sanitize_string(MessageID  + ".eml"))
            emailpath=self._replace_whitespace(emailpath)
            try:
                self._dual_dump(text,emailpath)
            except:
                pass
            self.logger.info(popinstance.dele(thisNum))
    finally:
        self.logger.info(popinstance.quit())
Run Code Online (Sandbox Code Playgroud)

(server_msg,body,octets)= popinstance.retr(thisNum)在电子邮件包含中文字符时在电子邮件正文中返回= 20.

我该如何处理?

电子邮件的原始文本:

主题:(提单:4363-0192-809.015)SI FOR 15680XXXX436

= 20

= 20

SI封闭

PLS向我们发送BL草案和债务说明

= 20

TKS

= 20

肉豆蔻酸 …

python email fonts jython asianfonts

2
推荐指数
2
解决办法
7471
查看次数

IronPython和Jython与CPython有相同的GIL问题吗?

我读到了CPython和CPU绑定线程的问题以及GIL和Python 3.2中的一些变化.

IronPython和Jython有同样的问题吗?

谢谢

python ironpython jython

2
推荐指数
1
解决办法
725
查看次数

Jython jmxmp协议支持

我正在为zabbix开发监控脚本和模板的集合.它被称为ZTC,所有脚本都在python上.

现在我想添加一些java监控的支持.我没有找到从CPython中做到这一点的方法 - 仅限于java或jython.由于所有项目都在python上,我决定在jython上编写一个简单的脚本,它将从我的cpython类中调用.

以下是我的代码的样子:

#!/usr/bin/env jython

#Java Dependencies
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.lang.management.ManagementFactory;

#Python Dependencies
import sys, cmd, socket

def usage():
    print """Usage:
    jmxclient.py -h
    jmxclient.py <connect_url> <jmx_attribute_path> <jmx_property>"""

class JMXClient:
    remote = None

    def connect(self, connect_url):
        if self.remote:
            return True

        #Establish Connection to JMX Server
        url = javax.management.remote.JMXServiceURL(connect_url);
        connector = javax.management.remote.JMXConnectorFactory.connect(url);
        self.remote = connector.getMBeanServerConnection();

    def getAttribute(self, mbean_path, attribute):
        """Query the mbean server for a specific attribute and return the
        result"""
        obn …
Run Code Online (Sandbox Code Playgroud)

java jmx jython

2
推荐指数
1
解决办法
2286
查看次数

标签 统计

jython ×10

python ×7

java ×3

asianfonts ×1

emacs ×1

email ×1

fonts ×1

grayscale ×1

import ×1

invert ×1

ironpython ×1

jes ×1

jetty ×1

jmx ×1

parameters ×1

spring-boot ×1