我正在尝试将无头imageJ库连接到我的python应用程序。不幸的是,依赖性错误列表无穷无尽,我现在陷入导入错误,涉及导入名为jnius的java包装器。
到目前为止,我已经使用更新的pip安装了:wheel,imagej,cython,imglyb,pyjnius模块。由于“无法确定JDK_HOME”是在两者之间触发的,因此我遵循了将环境变量列表更新到我的路径(用户和系统)的明显规则。在其间,pyjnius报告"Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"
和我安装相同(一个5.33 GB)和另外的“VCForPython27”。
import os
print(os.environ.get('JAVA_HOME'))
print(os.environ.get('JDK_HOME'))
这两个命令给我以下输出:
C:\Program Files\Java\jdk-11.0.2; C:\Program Files\Java\jdk-11.0.2\bin;C:\Program Files\Java\jdk-11.0.2\bin\server
现在我可以在我的代码中导入imageJ,但是当我尝试使用它的第一个函数时
ij = imagej.init('C:\\Users\\Documents\\ImageJ_Fiji\ImageJ-win64.exe')
我得到以下与import scyjava
相关的错误:"Unable to import scyjava dependency jnius."
当我尝试运行pip install jnius --user
时,我得到了同样的错误:“无法确定JDK_HOME'”这似乎令人困惑,因为我成功安装了pyjnius
和pip install scyjava --user
给了我一个输出,所有要求得到满足。
我不再使用conda环境(因为它让我非常困惑),我的python版本是3.7.2,我的操作系统是Windows 10.我使用的编辑器是PyCharm。我从oracle网站安装了最新的JDK和JRE。
参考:qazxsw poi qazxsw poi
已经在image.sc论坛上讨论了pyimagej的安装,例如Jnius installation bug, "Unable to determine JDK_HOME"。
此外,目前在jnius 1.1 import error(in this topic和scyjava
)和#5(#7)有一些公开问题/ PR。
据我所知,在Python中安装pyimagej
的推荐方法是使用conda,因为使用#21激活环境将为依赖项设置所需的环境变量。
如有其他问题,我建议询问imagej
。