我正在尝试从一个Jython脚本调用一个函数到另一个,并在第二个脚本中的另一个函数中使用它,让我来看看。
我有一个脚本Tools.py
,其中包含了我想要使用的几个函数。目前,我想在第二个脚本run_prog()
中的Tools.py
函数中调用prog()
中的Prog.py
函数。
我查看了论坛并使用了:
from Tools import run_prog()
在第二个脚本中的prog()
函数之前收到错误消息:
No module named Tools
和
execfile(direc+"Tools.py")
和
os.system(direc+"Tools.py")
prog()
函数中的,但我收到错误消息:
global name 'run_prog()' is not defined
有人能告诉我哪里出错了吗?令人困惑的部分是两个.py
脚本都在同一个目录中。
可能,为了更清楚,这里是脚本的细分:
Tools.py
def run_prog():
...
def run_prog2():
...
def convert_image():
...
def read_image():
...
现在在Prog.py
def prog():
run_prog()
...
谢谢,
Kid先生
答案 0 :(得分:0)
尝试:
from .Tools import run_prog
导入时,切勿在功能名称后面加上括号。
[修改]要使您的工具成为一个包,您应该创建一个名为Tools
的文件夹,将您的Tools.py
重命名为__init__.py
并将其放入那个文件夹。
答案 1 :(得分:0)
您的Prog.py
找不到Tools.py
。通常(我的意思是在常规python中)将自动找到位于脚本中同一目录中的模块。
您的目录布局是什么?
作为一种解决方法,您可以使用jython -Dpython.path=foo/path:bar/path
来定义显式搜索路径。