2013-02-22 32 views
5

ज्योथन स्टैंडअलोन जार उस समय आयातकर अपवाद फेंक रहा है जब मैं अपाचे-पीओआई के साथ ज्योथन का उपयोग करने की कोशिश करता हूं।स्टैंडअलोन ज्योथन: आयात त्रुटि (अपाचे-पीओआई)

आप नीचे

मिल जाएगा मैं अपने Jython स्क्रिप्ट फोन:

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

त्रुटि:

Traceback (सबसे हाल कॉल पिछले):

फ़ाइल "main.py" , लाइन 32,

org.apache.poi.hssf.usermo से डेल आयात *

ImportError: नहीं मॉड्यूल नामित अपाचे

इस लाइन # 32 पर कोड है:

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

वहाँ आदेश जावा के तीसरे के साथ काम करने में Jython से किसी भी प्रतिबंध है पार्टी अनुप्रयोगों?

अग्रिम धन्यवाद,

उत्तर

7

आप एक ही समय में -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 

हालांकि, यह पता चला है कि इन आदेशों में से कोई भी standalone Jython साथ काम करते हैं। आपको ImportError मिलता है, जैसा कि सवाल में कहा गया है। एक पुरानी खुली बग है जो प्रासंगिक प्रतीत होती है: http://bugs.jython.org/issue1422 (यह कहता है कि समस्या सोलारिस पर मौजूद है, लेकिन यह अन्य प्लेटफॉर्म पर भी लागू होती है जहां तक ​​मैं बता सकता हूं)।

installed Jython और jython आदेश का उपयोग करना ठीक काम करता है:

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

ध्यान दें कि स्टैंडअलोन jython.jar मानक पुस्तकालय अजगर मॉड्यूल (Lib फ़ोल्डर में) शामिल हैं। ये मॉड्यूल jython.jar में शामिल नहीं हैं जिन्हें आप स्थापित ज्योथन के साथ प्राप्त करते हैं।

मुझे उम्मीद है कि यह उत्तर मदद करता है, भले ही यह आपकी समस्या को पूरी तरह हल नहीं कर सके।

+0

यह अभी भी अपवाद संदेश फेंक रहा है: ImportError। – Eder

+0

लेकिन अगर मैं इसे किसी अन्य पर इस्तेमाल करने के लिए रिलीज़ करना चाहता हूं तो क्या होगा कंप्यूटर? क्या इसे पैक करना संभव होगा? – Eder

+0

"मूल इंस्टॉल" jython.jar करता है मानक लाइब्रेरी पायथन फाइलों को शामिल न करें जो स्टैंडअलोन jython.jar में बंडल किए गए हैं। इसे निश्चित रूप से माना जाना चाहिए। मुझे यकीन नहीं है कि आपके मामले में सबसे अच्छा समाधान क्या है। – mzjn

1

आप इस

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

की तरह अपने सिस्टम पथ को जार संलग्न करने के लिए और फिर कोशिश कर सकते हैं एक ही स्क्रिप्ट चलाने के लिए प्रयास करें। हालांकि पथ पर जाने के लिए ओएस मॉड्यूल का उपयोग करना बेहतर होगा। मुझे यकीन नहीं है कि विंडोज़ ओएस पर ज्योथन में स्लेश का इलाज कैसे किया जाता है।

+0

@Arshard_Ansari निम्नलिखित झंडे को जोड़ने के लिए होना चाहिए:! यह अभी भी काम नहीं कर रहा है .. क्या इसका उपयोग करने वाले ज्योथन संस्करण के साथ ऐसा कुछ भी है? (ज्योथन स्टैंडअलोन 2.7 बी) – Eder

3

मैं आपकी समस्या को पुन: उत्पन्न करने की कोशिश कर रहा हूं और स्टैंडअलोन ज्यथन के 2.5.3 संस्करण के साथ इसका सामना कर रहा हूं। पीओआई 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 सुझाव की कोशिश की लेकिन यह एक ही त्रुटि देता है के रूप में आप की सूचना दी।)

यह आप में this reported issue या कुछ इसी तरह/संबंधित चला रहे हैं हो सकता है? यह परिदृश्य (स्टैंडअलोन संस्करण) और आपके द्वारा उपयोग किए जाने वाले संस्करणों से मेल खाता प्रतीत होता है।

3

कॉमन्स-लैंग 3-3.1.jar इत्यादि का उपयोग करते हुए ज्योथन 2.5.4-आरसी 1 स्टैंडअलोन के साथ एक ही समस्या है। मुझे इसे स्टैंडअलोन मोड में उपयोग करना है, इसलिए यह बहुत निराशाजनक है! :-(

संपादित करें: इस व्यक्ति को यह लगा बाहर Why does Jython refuse to find my Java package?

आप Jython स्टैंडअलोन काम करने के लिए

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