我需要使用 bioformats-python 来读取显微镜图像。要使用它,需要一个 Java VM。
我只能使用 java VM 一次,如果我再次执行 python 脚本,则会出现错误。
如果我重新启动spyder内核,该脚本只能再次运行。
我安装了 JDK (8u181) 并设置了路径变量。我使用 Spyder 和 python 3.6。
这是我用来测试 java VM 的代码:
import javabridge
javabridge.start_vm(run_headless=True)
try:
print(javabridge.run_script('java.lang.String.format("Hello, %s!", greetee);',
dict(greetee='world')))
finally:
javabridge.kill_vm()
Run Code Online (Sandbox Code Playgroud)
我第一次执行时得到了什么:
>>> Hello, world!
Run Code Online (Sandbox Code Playgroud)
这是我尝试第二次运行它时收到的错误消息:
Traceback (most recent call last):
File "C:\Users\Z820\Miniconda3\envs\py37\lib\site-packages\javabridge\jutil.py", line 281, in start_thread
env = vm.create(args)
File "_javabridge.pyx", line 653, in _javabridge.JB_VM.create
RuntimeError: Failed to create Java VM. Return code = -1
Failed to create Java VM
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) 我使用 python 生成了 RSA 密钥对,我想在 javascript 中导入它。我成功导入了公钥,但在私钥导入方面遇到了困难。
Python :
from Cryptodome.PublicKey import RSA
key = RSA.generate(1024)
private_key = key.export_key().decode("ascii")
public_key = key.publickey().export_key().decode("ascii")
Run Code Online (Sandbox Code Playgroud)
JavaScript:
function str2ab(str) {
const buf = new ArrayBuffer(str.length);
const bufView = new Uint8Array(buf);
for (let i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}
async function importRsaPublicKey(pem) {
// fetch the part of the PEM string between header and footer
const pemHeader = "-----BEGIN PUBLIC KEY-----";
const pemFooter …Run Code Online (Sandbox Code Playgroud)