python/jython 名称错误

0 投票
3 回答
3466 浏览
提问于 2025-04-16 22:57

我在使用命令 "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 System

import 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." 前缀。

你可以在这里找到更多信息:

http://www.javamonamour.org/2013/08/wlst-nameerror-cd.html

3

你正在尝试使用一个没有定义的函数,也就是 cd()。根据你的评论,这个函数是 WLST 提供的。我自己没有用过 JythonWLST,但你需要找到一种方法在你的脚本中导入这些方法,这样才能使用它们。

撰写回答