簡體   English   中英

獨立Jython:導入錯誤(Apache-POI)

[英]Standalone Jython: Import Error (Apache-POI)

在我嘗試將Jython與Apache-POI一起使用時,Jython獨立jar會拋出ImportError異常。

下面你會發現我如何調用我的Jython腳本:

java -cp C:\jAutoMailerScript\lib\poi-3.9-20121203.jar -jar jython.jar main.py

錯誤:

Traceback(最近一次調用最后一次):

文件“main.py”,第32行,in

來自org.apache.poi.hssf.usermodel import *

ImportError:沒有名為apache的模塊

這是第32行的代碼:

from org.apache.poi.hssf.usermodel import *

為了使用Java的第三方應用程序,Jython是否有任何限制?

提前致謝,

您不能同時使用-cp-jar -jar選項會覆蓋任何其他類路徑設置。 請參閱http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

使用python.path系統屬性應該工作:

java -Dpython.path=C:\jAutoMailerScript\lib\poi-3.9-20121203.jar -jar jython.jar main.py

這是一個替代命令:

java -cp C:\jAutoMailerScript\lib\poi-3.9-20121203.jar;jython.jar org.python.util.jython main.py

但是,事實證明這些命令都不適用於獨立的Jython 你得到一個ImportError ,就像它在問題中所說的那樣。 有一個看似相關的舊的開放式錯誤: http//bugs.jython.org/issue1422 (它表示Solaris上存在問題,但就我所知,它確實適用於其他平台)。

使用已安裝的Jythonjython命令可以正常工作:

jython -Dpython.path=C:\jAutoMailerScript\lib\poi-3.9-20121203.jar main.py

請注意,獨立的jython.jar包含標准庫Python模塊(在Lib文件夾中)。 這些模塊不包含在安裝了Jython的jython.jar中。

我希望這個答案有所幫助,即使它可能無法完全解決您的問題。

我一直試圖重現你的問題,並遇到與2.5.3版本的獨立Jython相同的問題。 也嘗試了POI 3.7; 仍然是同樣的交易。 我也嘗試了sys.path.append建議,Arshad做了。 這里發生了一些奇怪的事情(使用不同的庫進行測試 - 這次是barcode4j):

c:\development\local\lib\jython-sa-2.5.3>java -jar jython-standalone-2.5.3.jar
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_10
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\development\\local\\lib\\jython-sa-2.5.3\\Lib', 'C:\\development\\local\\lib\\jython-sa-2.5.3\\jython-standalone-2.5.3.jar\\Lib', '__classpath__', '__pyclasspath__/']
>>> sys.path.append('C:\development\local\lib\barcode4j-2.0\build\barcode4j.jar')
>>> sys.path
['', 'C:\\development\\local\\lib\\jython-sa-2.5.3\\Lib', 'C:\\development\\local\\lib\\jython-sa-2.5.3\\jython-standalone-2.5.3.jar\\Lib', '__classpath__', '__pyclasspath__/', 'C:\\development\\local\\lib\x08arcode4j-2.0\x08uild\x08arcode4j.jar']
>>>

看看由於'\\'分隔符,路徑如何被擾亂?

(還嘗試了python.path建議,但它提供了與您報告的相同的錯誤。)

難道你正在遇到這個報道的問題或類似/相關的事情嗎? 它似乎與場景(獨立版本)以及您和我使用的版本相匹配。

與jython 2.5.4-rc1獨立使用commons-lang3-3.1.jar等相同的問題。我必須在獨立模式下使用它,所以這非常令人沮喪! :-(

編輯:這個人想通了! 為什么Jython拒絕找到我的Java包?

您必須為Jython獨立版添加以下標志才能工作!

java -Dpython.cachedir.skip=false -Dpython.cachedir=/tmp {...}

您可以嘗試將jar附加到系統路徑中,如下所示

sys.path.append('C:\jAutoMailerScript\lib\poi-3.9-20121203.jar')

然后嘗試運行相同的腳本。 雖然使用os模塊到達路徑會更好。 我不確定如何在Windows操作系統上的jython中處理斜杠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM