python/jython 名称错误
我在使用命令 "cd" 导入其他文件时遇到了常见的 NameError(没有任何额外的信息)。
比如说,有一个叫executor.py的文件:
import sys
from java.lang import System
import ds_update
x = ds_update.DataSource()
x.someAction()
还有一个叫ds_update.py的文件:
import sys from java.lang import Systemimport sys
from java.lang import System
class DataSource:
def someAction(self):
try:
cd('/')
...
出现了错误:(如果这些命令在一个文件里,就不会有 cd 的问题)
Problem invoking WLST - Traceback (innermost last):
File "...\executor.py", line 17, in ?
File "...\ds_update.py", line 11, in updateDS
NameError: cd
谢谢:-)
3 个回答
0
虽然这个问题比较老,但我想补充一下:
WLST使用了一种命名空间。这是因为,如果你想用WLST的功能,但把要导入的文件放在了其他地方,而不是放在/wlserver_10.3/common/wlst目录下,那么这些功能就无法正常工作。
2
这里需要一些导入,至少要有:
import wl
生成 wl 模块的方法可以在 Oracle 的这个链接中找到:http://docs.oracle.com/cd/E15051_01/wls/docs103/config_scripting/using_WLST.html#wp1094333
然后,你在使用 "cd" 和其他 WLST 内置命令时,都要加上 "wl." 前缀。
你可以在这里找到更多信息:
3
你正在尝试使用一个没有定义的函数,也就是 cd()
。根据你的评论,这个函数是 WLST
提供的。我自己没有用过 Jython
或 WLST
,但你需要找到一种方法在你的脚本中导入这些方法,这样才能使用它们。