用Java调用.py程序出现ModuleNotFoundError: No module named 'java'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java调用.py程序出现ModuleNotFoundError: No module named 'java'相关的知识,希望对你有一定的参考价值。
import sysfrom java.awt import *from java.io import *from java.lang import *from java.nio import *from java.util import *from javax.swing import *from edu.mines.jtk.awt import *from edu.mines.jtk.dsp import *from edu.mines.jtk.interp import *from edu.mines.jtk.io import *from edu.mines.jtk.mosaic import *from edu.mines.jtk.ogl.Gl import *from edu.mines.jtk.sgl import *from edu.mines.jtk.util import *from edu.mines.jtk.util.ArrayMath import *from util import *from mef import *from he import *############################################################################## Run the function main on the Swing threadimport sysclass _RunMain(Runnable): def __init__(self,main): self.main = main def run(self): self.main(sys.argv)def run(main): SwingUtilities.invokeLater(_RunMain(main))
参考技术A 这个错误我以前遇到过,当时我是使用shell脚本包了一层,即通过shell脚本间接调用python脚本,当时我的问题就解决了追问怎么通过shell脚本间接调用python脚本,是重新编一个程序来运行吗?我是不能导入“Java”包,会不会是配置路径的问题,可是我查看了路劲,应该也没问题
参考技术B 模块不存在错误追问那应该怎么处理,可以详细说说吗?谢谢
追答你的python带你是不是正确的,能执行
追问在Python运行也是这个错误
调用自定义模块出现ModuleNotFoundError的问题
参考技术A Python会在以下路径中搜索它想要寻找的模块:1,程序所在的文件夹
2,标准库的安装路径
3,操作系统环境变量PYTHONPATH所包含的路径
产生问题的原因可能是: IDE(我使用的是Pycharm)没有将当前目录添加到工作目录中,导致了在搜索的目录中找不到要调用的模块。
解决方法1:在调用自定义模块前先将程序所在的目录添加到工作目录中
例如 这里的preprocess.py是我们自定义的模块 ,已经将其放在同一目录下
解决方法2:在Pycharm中创建NewProject,将调用程序与被调用程序放在同一个Project中。
此时Pycharm会自动生成.idea和__pycache__两个文件夹,模块的调用应该和这个有关,然后在程序中直接调用自定义的模块就可以了。
红色划线部分是调用的python解析器的位置。可能在用pycharm调用的时候这些模块都是能正常使用的。但是,为什么到了vscode这儿就出问题了呢?
首先,让我们来看看现在有哪些模块,在命令行终端输入conda list。
可以看见torch模块确实已经安装了,不过请注意后面还有个pypi。pypi是指这个模块是通过pip安装的,而不是通过conda安装。所以模块无法调用的原因就在这儿。
解决方法比较简单粗暴,在选择python解析器的时候选择conda base版本的就OK了。在这个解析器下,即使是pip安装的模块也可以照常使用。
1、因为默认的路径不在根目录了,而以 当前运行的程序文件夹为根目录
2、如果在当前文件目录底下可以找到导入的包,那么可以直接使用from … import …
3、如果在当前文件目录底下找不到导入的包,则需要向sys.path添加包的所在的绝对位置。
最后补充一下我的问题是怎么解决的:
在了解了路径原理之后,仔细核对了出问题的路径之后,发现from … import …的时候,from目录不是从根目录开始的,修改之后修复bug
以上是关于用Java调用.py程序出现ModuleNotFoundError: No module named 'java'的主要内容,如果未能解决你的问题,请参考以下文章
调用自定义模块出现ModuleNotFoundError的问题
普通 java 工程调用 arcobject 功能,打包成独立可运行程序后,用脚本调用
运行py程序出现错误:未找到模块错误:没有名为'java'的模块