【问题标题】:Jython ImportError: No module named * (only on Windows Server 2012)Jython ImportError:没有名为 * 的模块(仅在 Windows Server 2012 上)
【发布时间】:2015-11-06 09:51:53
【问题描述】:

我有一个用于 weblogic 的 CreateDomain.py 脚本。现在我想在 python 脚本中导入一个 java 类。我将 com.swisslog.python.util.FileNameUtil 类导出到 jar 中,并在调用 python 脚本之前将其添加到类路径中。

这是脚本的开始:

from wlstModule import *
from java.io import FileInputStream
from java.util import Properties
import jarray.array
import os
import shutil
import traceback
import sys
import getopt
from com.swisslog.python.util import FileNameUtil

我从一个 bat 文件启动脚本:

set CLASSPATH=%CLASSPATH%;wm6-python-util.jar
%MW_HOME%\wlserver\common\bin\wlst.cmd common\CreateDomain.py %1 %2 %3 %4

这适用于 Windows 7。但在 Windows Server 2012 上,我收到以下错误:

ImportError: no module named swisslog

使用完整路径也不起作用 (jython ImportError: No module named)

任何帮助将不胜感激。

【问题讨论】:

  • 当您只使用import com 时,sys.modules['com'] 中有什么内容?这是否与com.swisslog 所在的包路径匹配?
  • 它为import comfrom com import * 打印<java package com 1>

标签: python jython windows-server-2012


【解决方案1】:

我发现了一个愚蠢的解决方法。我添加了一个 main 方法,它调用真正的方法并使用 system.out.print 打印结果。然后我可以从 python 脚本启动 jar,而不需要导入:

    result = os.popen(['java', '-jar', 'python-util.jar', 'arg').read()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2010-12-10
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多