2011-12-15 8 views
7

मैं एक परियोजना के लिए नियो 4j का उपयोग करने की कोशिश कर रहा हूं, और पाइथन के माध्यम से इसके साथ इंटरफेस करना चाहता हूं क्योंकि मैं प्रोग्रामिंग के लिए नौसिखिया हूं और किसी भी जावा को नहीं जानता हूं। मैं installation instructions का पालन कर रहा हूं, लेकिन मैं पर पहला कदम है, जो जेपीपी स्थापित करना है।Neo4j के साथ उपयोग करने के लिए ओएस एक्स शेर पर जेपी टाइप कैसे स्थापित करें?

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

जब मैं

% sudo python setup.py install 

चलाने JPype संस्थापक पर, मैं विभिन्न ज फ़ाइलों के बारे में त्रुटि कोड की एक 100 लाइनों के बारे में मिलता है, तो यह लाइनों के साथ समाप्त हो जाता है:

lipo: can't figure out the architecture type of: /var/tmp// 
ccwOzLi9.out 

error: command 'gcc-4.2' failed with exit status 1 

मैं blog post about a gcc error with JPype मिला, लेकिन मैंने इसका कोई फायदा नहीं हुआ निर्देशों का पालन किया। मैंने उस पोस्ट के लेखक को भी ईमेल किया, और उसने मुझे बताया कि वास्तव में जेपी टाइप नहीं किया था, ओएस एक्स 10.6 में काम कर रहा था, और इसमें कोई अंतर्दृष्टि नहीं थी।

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

तो, किसी को पता है कि मैं क्या गलत कर रहा हूं? मैं Neo4j का उपयोग करना चाहता हूं, लेकिन मैं जावा नहीं जानता, इसलिए मैं एक कंपाइलर त्रुटि को ठीक करने के तरीके के लिए एक पूर्ण हानि पर हूं।

हर गूगल परिणाम उपलब्ध पढ़ना, मेरे दो सिद्धांतों के आधार पर चल रहा है कि कर रहे हैं:

  1. मैं किसी भी तरह अजगर की या जावा (की एक 32-बिट संस्करण का उपयोग कर रहा है, हालांकि मैं मानक सरकारी प्रतिष्ठानों में इस्तेमाल किया और यह पता नहीं लगा सकता कि कैसे 64-बिट पर स्विच करें या यदि यह भी संभव है)

  2. जेपी टाइप फ़ाइलों को केवल 4.2 के बजाय जीसीसी 4.0 का उपयोग करके संकलित किया जा सकता है। लेकिन मुझे जीसीसी 4.0 (या ) को रोलबैक करने के तरीके के बारे में ऑनलाइन कुछ भी नहीं मिल रहा है, अगर इसे 2011 मैकबुक के साथ भेज दिया जाता है और जेपी टाइप को इसके साथ संकलित करने के लिए मजबूर करने का कोई तरीका है)।

वहाँ another similar question है, लेकिन समाधान वहाँ किसी अन्य एडाप्टर है कि जावा में सीधे hooking के बजाय बाकी के माध्यम से चला जाता है का उपयोग करें। मैं कोशिश करता हूं कि अगर मुझे करना है, लेकिन यदि संभव हो तो मैं वास्तव में अनुशंसित नियो 4j विधि का उपयोग करूंगा।

+0

+1 पहले समस्या को हल करने का प्रयास करने के लिए +1। – edwardw

+0

मैंने इस थ्रेड में उल्लिखित प्रस्तावित परिवर्तनों में से कुछ के साथ [github पर एक कांटा] बनाया है (https://github.com/originell/jpype)। –

उत्तर

11

मैं एक अजगर पुरुष नहीं कर रहा हूँ, लेकिन मेरे मशीन पर JPype स्थापित करने की कोशिश की:

% uname -a 
Darwin fatty-i7.local.tld 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64 
% java -version 
java version "1.6.0_29" 
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527) 
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode) 

OSX शेर पर, नवीनतम JDK यहां स्थित प्रतीत हो:

/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/JavaVM.framework/ 

एक छोटी सी Googling इस पोस्ट को चालू किया: http://blog.y3xz.com/post/5037243230/installing-jpype-on-mac-os-x

मैंने setup.py को संशोधित करने के लिए उन निर्देशों का पालन किया, फिर sudo python setup.py install कोई समस्या नहीं हुई।

क्या इससे मदद मिलती है?

+2

वू! यह हल हो गया। मैंने आपके द्वारा उद्धृत ब्लॉग पोस्ट का पालन किया, लेकिन मैं अपने जावा_होम के रूप में '/ System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home' का उपयोग कर रहा था, जो मुझे'%/usr/libexec/java_home' (जो एक और ब्लॉग पोस्ट ने मुझे करने के लिए कहा)। मैं जेपी टाइप लड़का ईमेल करूंगा और उसे दस्तावेज में जोड़ने के लिए कहूंगा। – rogueleaderr

+0

setup.py में, आपको 'self.jdkInclude = "डार्विन" और' self.javaHome = '/ लाइब्रेरी/जावा/जावा वर्चुअल माचिन/jdk1.8.0_121.jdk/सामग्री/होम' जोड़ने की आवश्यकता है। फिर 'python setup.py install --user' – Sandeep

1

मैं एक ही किया था, लेकिन

self.javaHome = '/Developer/SDKs/**MacOSX10.6.sdk**/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/' 

चुनने के बजाय

self.javaHome = '/Developer/SDKs/**MacOSX10.7.sdk**/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/' 

पता है कि मैं संस्करण 6 का उपयोग बनाम 7। 7 संस्करण के साथ मुझे वही त्रुटियां मिलीं जो शुरुआत थीं।

+0

चलाएं हाँ, यह एक अच्छा बिंदु है। मुझे ओएस संस्करण का उल्लेख करना चाहिए था, और इसे प्रतिबिंबित करने के लिए मेरा जवाब संपादित कर दिया है। मैकोज़क्स के आपके विशेष संस्करण और स्थापित जेडीके के साथ सटीक पथ अलग-अलग होगा। – akollegger

4

मेरे लिए,

self.javaHome = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/' 

काम किया।

$ uname -a Darwin 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr 9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64 

$ java -version java version "1.6.0_33" Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720) Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode) 
+1

YESSSSSSSSSSSSSSSSSSSS –

1

मेरे लिए, माउंटेन शेर

self.javaHome = '/System/Library/Frameworks/JavaVM.framework/' 

पर काम किया।

$uname -a 
Darwin 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64 x86_64 

$ java -version 
java version "1.6.0_33" 
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720) 
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode) 
10

मेरे शेर पर, जेडीके में "शामिल" निर्देशिका समाप्त हो गई थी, इसलिए जेपीपी को jni.h नहीं मिला।

मैं दो स्थानों पर, एक में अद्यतन setup.py जहां जार पुस्तकालयों को खोजने के लिए सेट करने के लिए:

def setupMacOSX(self): 
    self.javaHome = '/System/Library/Frameworks/JavaVM.framework' 
    self.jdkInclude = "" 
    self.libraries = ["dl"] 
    self.libraryDir = [self.javaHome+"/Home/lib"] 
    self.macros = [('MACOSX',1)] 

और एक जहां jni.h लगाने के लिए सेट करने के लिए: कोशिश कर

def setupInclusion(self): 
    self.includeDirs = [ 
     self.javaHome+"/Headers", 
     <other stuff> 
+2

यह मेरे लिए माउंटेन शेर पर भी काम करता था। – orluke

+0

आप रॉक, आदमी !! – KeatsKelleher

-1

उन लोगों के लिए माउंटेन शेर पर स्थापित करने के लिए, मुझे हेडर फाइलों को यहां शामिल करने के लिए setup.py फ़ाइल को और संपादित करना पड़ा:

/सिस्टम/लाइब्रेरी/फ़्रेमवर्क/जावावाइम.फ्रेमवर्क/वर्सेन्स/क्यूरेंट/हेडर

+0

इस जानकारी को जोड़ने के लिए धन्यवाद, लेकिन चूंकि यह प्रत्यक्ष उत्तर नहीं है, इसलिए यह टिप्पणी के रूप में अधिक उपयुक्त होगा –

2

हर कोई है जो अभी भी Jpype स्थापित करने के लिए कोशिश कर रहा है लेकिन इस बीच अपडेट किया गया है मैक ओएस के लिए: एंड्रियास Kolleger का जवाब सिर्फ ठीक काम करता है, लेकिन XCode 4.3 के साथ पथ यह MacOSX10.8.sdk है /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/JavaVM.framework/Versions/Current/

करने के लिए बदल एमएल में। कम से कम मेरे सिस्टम पर। :)

2

ओएस एक्स 10.7 पर जेपी टाइप स्थापित करने के लिए मैंने अपने रीडमे में दिए गए निर्देश दिए हैं। यहां जवाब के रूप में वही विचार है, लेकिन जमा करने की गारंटी देने के लिए काफी अलग है।

जावा (जेपी टाइप) के लिए पाइथन इंटरफ़ेस को setup.py: में मोड की आवश्यकता है संक्षेप में, आपको जेपीपी सेटअप सुनिश्चित करना होगा।पीई स्क्रिप्ट आपके जावा एसडीके "हेडर" और "होम" निर्देशिका देख सकता है मुझे पहले ऐप्पल से जावा इंस्टॉल करना पड़ा था क्योंकि मेरा डिफ़ॉल्ट ओएस एक्स इंस्टॉलेशन सामान्य जावा इंस्टॉल पथ में हेडर के साथ नहीं आया था जिसे मैंने निष्पादित किया था:

/usr/libexec/java_home 

आप एक हेडर निर्देशिका के लिए होता है, तो आप शायद जावा पुनर्स्थापित करने के लिए की जरूरत नहीं है और पथ सेट कर सकते नीचे अपना जावा गृह निर्देशिका जो संभावना इन निर्देशों का

में उन लोगों से अलग है मैं के बाद के आधार पर वार्स स्थापित जावा, मुझे नई स्थापना मिली:

/Library/Java/JavaVirtualMachines/ 

मेरे घर निर्देशिका था:

/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/ 

और मेरे हैडर निर्देशिका था:

/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Headers/ 

1) JPype स्क्रिप्ट मानता है कि हेडर होम निर्देशिका के भीतर है, लेकिन यह नहीं है, तो मैं घर बदल पथ वर और setup.py लिपि में एक नया सामग्री पथ वर बनाया - setupMacOSX(self) में:

self.javaHome = '/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/' 
self.javaContents = '/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/' 

2)में, बदल self.libraryDir:

self.libraryDir = [self.javaContents + "/Libraries"] 
  • ध्यान दें कि के रूप में आवश्यक है, लेकिन मैं यह काम करने के लिए तो शायद बिना कोशिश यह करने के लिए नहीं था इस कदम उल्लेख किया गया था यह पहली

3) setupInclusion में

self.javaHome+"/include", 
self.javaContents + "/Headers", 

4) स्थापना चल रहा है अब काम करना चाहिए:

0, अपने "घर/में शामिल हैं" dir और अपने "हेडर" dir करने के लिए पथ को जोड़ने निर्देशिका पथ उन्होंने सुझाव दिया, यानी, '/System/Library/Frameworks/JavaVM.framework/Headers' पर जोड़कर मैं setupInclusion (स्वयं) विधि को संशोधित करने के लिए किया था:
sudo python setup.py install 
0

में थोड़ा और अधिक विशिष्ट विल के जवाब बनाने के लिए माउंटेन शेर (जावा संस्करण 1.6)। इसके साथ जेपीइप की स्थापना सफल हुई (हालांकि चेतावनियों का एक गुच्छा दिया गया ...)

0

यहां मेरे लिए क्या काम किया गया है - अनुशंसा करते हैं कि आप अपनी प्रोफ़ाइल में पहली पंक्ति डाल दें।

निर्यात JAVA_HOME = $ (/ usr/libexec/JAVA_HOME) सीडी $ JAVA_HOME sudo ln -s हेडर sudo सीपी शामिल हैं/डार्विन/* शामिल/ सीडी -

ध्यान दें कि बजाय बदल रहा है की स्थापना के .py, मैं अपना जेडीके इंस्टॉल बदल रहा हूं। अन्य परियोजनाओं के लिए इस मुद्दे को ठीक करने का इसका लाभ है।