在Jython中实例化webclient对象产生奇怪的结果
我正在尝试在一个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