在jython中实例化webclient对象会产生奇怪的结果

时间:2012-01-08 00:55:55

标签: python webclient jython htmlunit

我正在尝试在jython脚本中使用java的WebClient jar。

我正在运行一个类似的jython脚本:

jython -Dpython.path=/home/tipu/Dropbox/dev/proj/lib/* test.py

test.py的内容:

import com.gargoylesoftware.htmlunit.WebClient as WebClient
def main():
   webclient = WebClient() # creating a new webclient object.

if __name__ == '__main__':
   main()

我得到的错误是:

Traceback (innermost last):
  File "scraper.py", line 1, in ?
ImportError: no module named gargoylesoftware

这是python.path目录中lib文件夹的标志:

commons-codec-1.4.jar          commons-lang-2.6.jar       htmlunit-2.9.jar          httpcore-4.1.2.jar   sac-1.3.jar           xercesImpl-2.9.1.jar
commons-collections-3.2.1.jar  commons-logging-1.1.1.jar  htmlunit-core-js-2.9.jar  httpmime-4.1.2.jar   serializer-2.7.1.jar  xml-apis-1.3.04.jar
commons-io-2.0.1.jar           cssparser-0.9.5.jar        httpclient-4.1.2.jar      nekohtml-1.9.15.jar  xalan-2.7.1.jar

知道它为什么不起作用?

2 个答案:

答案 0 :(得分:0)

在设置python.path等系统属性时,我认为通配符不起作用。试试这个:

  

$ CLASSPATH = / home / tipu / Dropbox / dev / proj / lib / *

     

$ jython test.py

答案 1 :(得分:0)

您需要做的是将.jar文件添加到java的类路径中。这是java查找要导入的模块/类的位置。 在Mac OS中: 打开一个终端,然后输入:

export CLASSPATH=$CLASSPATH:/x/y/htmlunit-2.11/lib/*

其中/x/y/htmlunit-2.11/lib/是所有.jar文件所在的目录。