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

0 投票
2 回答
636 浏览
提问于 2025-04-17 09:46

我正在尝试在一个jython脚本中使用java的WebClient库。

我运行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

你需要做的就是把 .jar 文件添加到 Java 的类路径中。类路径是 Java 查找要导入的模块或类的地方。

在 Mac OS 上,你可以打开一个终端,然后输入:

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

其中 /x/y/htmlunit-2.11/lib/ 是存放所有 .jar 文件的文件夹。

0

我觉得在设置像 python.path 这样的系统属性时,通配符是没用的。你可以试试这样做:

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

$ jython test.py

撰写回答