python / jython NameError

时间:2011-08-05 10:27:00

标签: python jython

在导入其他文件时,在命令“cd”上面临典型的NameError(没有任何附加消息)。

E.g。的 executor.py

import sys
from java.lang import System
import ds_update

x = ds_update.DataSource()
x.someAction()

ds_update.py 导入系统 来自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 :(得分:3)

您尝试使用未定义的函数,即cd(),根据您的评论,它是WLST提供的内容。我从未使用JythonWLST,但您必须找到一种方法在脚本中导入这些方法才能使用它们。

答案 1 :(得分:2)

需要一些进口,至少是:

import wl

Oracle在http://docs.oracle.com/cd/E15051_01/wls/docs103/config_scripting/using_WLST.html#wp1094333

中描述了生成wl模块的方法

然后你应该以“wl”为前缀。所有“cd”和其他WLST内置命令。

你会在这里找到更多

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

答案 2 :(得分:0)

即使它已经老了,我想补充一下:

WLST使用一种命名空间。因此,如果你将待导入文件放在/wlserver_10.3/common/wlst

中,那么与wlst相关的函数就不起作用了