我正在编辑旨在由 Jython 执行的 python 文件,以便它们在文件顶部具有适当的 shebang:
#!/usr/bin/jython
Run Code Online (Sandbox Code Playgroud)
这会导致文件以 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
Run Code Online (Sandbox Code Playgroud)
有什么办法可以在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 中定义它们,它将给出灰度值。
我明白为什么我会收到这个错误,但不知道如何格式化我的代码,以保存名称值。我查看了有关局部和全局变量/名称的问题;但我无法在我学到的基本语法中弄清楚如何做到这一点。
问题是:
如何创建名称并获取原始(红色、绿色、蓝色)的值,然后我可以在另一个函数中使用它们?我尝试过的一切都返回了更改后的(灰度)值。谢谢
任何人都可以向我展示一个通过传递参数并返回结果来从 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 …Run Code Online (Sandbox Code Playgroud) 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) 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
肉豆蔻酸 …
我读到了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 …Run Code Online (Sandbox Code Playgroud) 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