0

又是我,

我正在尝试将一个函数从一个 Jython 脚本调用到另一个,并在第二个脚本的另一个函数中使用它,让我解释一下。

我有一个脚本Tools.py,其中包含我希望使用的几个功能。目前我想在第二个脚本的函数中调用该run_prog()函数。Tools.pyprog()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()
    ...

谢谢,

孩子先生

4

2 回答 2

0

尝试:

from .Tools import run_prog

导入时,切勿在函数名称后加上方括号。

[编辑]要使您的工具成为一个包,您应该创建一个名为的文件夹Tools,将您的重命名Tools.py__init__.py并将其放入该文件夹中。

于 2013-10-15T09:24:26.303 回答
0

Prog.py找不到Tools.py。通常(我的意思是在常规 python 中)位于脚本同一目录中的模块会被自动找到。

你的目录布局是什么?

作为一种解决方法,您可以使用它jython -Dpython.path=foo/path:bar/path来定义显式搜索路径。

于 2013-10-15T09:25:12.897 回答