我正在编辑旨在由 Jython 执行的 python 文件,以便它们在文件顶部具有适当的 shebang:
#!/usr/bin/jython
这会导致文件以 jython 模式打开。但是,我想使用 python 模式。除了删除 shebang 和恢复缓冲区之外,我似乎无法以任何方式使缓冲区进入 python 模式并退出 jython 模式。即使运行python 模式也无法实现此目的(缓冲区仍处于 jython 模式)。我可以放置某种类型的钩子来忽略 .py 文件的 shebang 吗?
如果重要的话,我正在使用 emacs-22。
我是Jython/Python世界的新手.我正在尝试在Jython中安装多处理包.但是我收到了easy_install的返回消息
Setup script exited with error: Compiling extensions is not supported on Jython
有什么办法可以在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))
它不起作用。 The error: "local or global name could not be found."
我明白为什么我会收到这个错误。
但是,如果我尝试在 restoreColor 中定义它们,它将给出灰度值。
我明白为什么我会收到这个错误,但不知道如何格式化我的代码,以保存名称值。我查看了有关局部和全局变量/名称的问题;但我无法在我学到的基本语法中弄清楚如何做到这一点。
问题是:
如何创建名称并获取原始(红色、绿色、蓝色)的值,然后我可以在另一个函数中使用它们?我尝试过的一切都返回了更改后的(灰度)值。谢谢
任何人都可以向我展示一个通过传递参数并返回结果来从 java 代码调用 python 脚本的工作简单示例(java + python 代码)?
我必须承认,我对Jython导入逻辑感到有些困惑.
我现在可以手动将jar一个一个地添加到sys.path但是我有一大堆这些,这非常痛苦.
添加包含jar的目录显然不起作用.
最好的方法是什么?
我正在使用 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 …2020 年 4 月更新:我接受了下面的答案,因为它为我的问题提出了一个非常好的和简单的解决方案,但我的代码从未起作用!如果有人已经建立了类似的东西,请联系我!
我有一个简单的脚本my-script.py,它使用编写的特定库非常快速地进行一些计算Python:
import sys
import special-library
def fun(x):
  do something
fun(sys.argv[1])
在我的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)
当我从命令行测试它并为其提供输入参数时,这当然有效。
Java类如下:
package my.package;
import java.io.*;
public class PythonScriptExecuter {
    private static BufferedReader pythonToJavaReader;
    private …    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())
(server_msg,body,octets)= popinstance.retr(thisNum)在电子邮件包含中文字符时在电子邮件正文中返回= 20.
我该如何处理?
电子邮件的原始文本:
主题:(提单:4363-0192-809.015)SI FOR 15680XXXX436
= 20
亲
= 20
SI封闭
PLS向我们发送BL草案和债务说明
= 20
TKS
= 20
肉豆蔻酸 …
我读到了CPython和CPU绑定线程的问题以及GIL和Python 3.2中的一些变化.
IronPython和Jython有同样的问题吗?
谢谢
我正在为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 …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