2014-07-03 28 views
20

मुझे लिनक्स पर पाइथन 2.5 के लिए cx_Oracle स्थापित करने की आवश्यकता है (लिनक्स 2.6.18-371.1.2.el5 i686)। मैंने ओरेकल क्लाइंट 10.2.0.4 स्थापित किया है।cx_Oracle: distutils.errors.DistutilsSetupError: ओरेकल का पता नहीं लगा सकता है फ़ाइलें

मैंने निम्नलिखित कोशिश की है: 1. cx_Oracle tar.gzhttp://sourceforge.net/projects/cx-oracle/files/ से डाउनलोड करें। मुझे नहीं पता कि कौन सा सूचीबद्ध संस्करण पायथन 2.5 और ओरेकल क्लाइंट 10.2.0.4 के लिए उपयुक्त है, इसलिए cx_Oracle-5.1.tar.gz आज़माएं। अनपॅक किए गए टैर, अनपॅक किए गए फ़ोल्डर पर जाएं और python setup.py इंस्टॉल करें।

Traceback (most recent call last): 
File "setup.py", line 187, in <module> 
raise DistutilsSetupError("cannot locate Oracle include files") 
distutils.errors.DistutilsSetupError: cannot locate Oracle include files 

.bash_profile में मैं setted है ओरेकल पथ:: मैं त्रुटि मिली

export ORACLE_HOME=/usr/oracle/10.2.0.4/client 
export PATH=$ORACLE_HOME/bin 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib 

कैसे इस तरह के त्रुटि को ठीक है, शायद मैं cx_Oracle राल का एक और संस्करण की आवश्यकता है?

  1. रन पाइप cx_Oracle स्थापित करें। समझे त्रुटि:

डाउनलोड कर रहा है/खोल CX-ओरेकल

Cannot fetch index base URL https://pypi.python.org/simple/ 
Could not find any downloads that satisfy the requirement cx-Oracle 
No distributions at all found for cx-Oracle 

किसी ने मुझे सही समाधान के लिए सलाह सकते हैं? आप चलाते हैं setup.py यह आपके ORACLE_HOME पर इन फ़ोल्डरों में से किसी के लिए जाँच करेगा

... 
cx_Oracle.c:496: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast 
cx_Oracle.c:497: error: âOCI_UCBTYPE_EXITâ undeclared (first use in this function) 
cx_Oracle.c:497: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast 
cx_Oracle.c:498: error: âOCI_UCBTYPE_REPLACEâ undeclared (first use in this function) 
cx_Oracle.c:498: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast 
error: command 'gcc' failed with exit status 1 

उत्तर

13

:

अद्यतन जवाब में सुझाव के बाद मैं निम्नलिखित त्रुटि मिली।

possibleIncludeDirs = ["rdbms/demo", "rdbms/public", "network/public", 
     "sdk/include"] 

इसके अलावा तत्काल ग्राहक कभी कभी इस तरह के oci.h के रूप में शामिल फ़ाइलें, स्थानों,/usr/शामिल/ओरेकल // क्लाइंट में, अगर कोई ORACLE_HOME के ​​तहत 'शामिल' कोई निर्देशिका इसे करने के लिए एक प्रतीकात्मक लिंक बनाने ।

sudo ln -s /usr/include/oracle/11.2/client $ORACLE_HOME/include 

ऐसा लगता है आप Client SDK

+1

मैं प्रतीकात्मक कड़ी बनाने की कोशिश की, यह मदद नहीं करता है, लेकिन मैं खाली फ़ोल्डर को बस /usr/oracle/10.2.0.4/client/net में शामिल करने का प्रयास करें काम। यह निश्चित त्रुटि है, लेकिन मुझे नया मिला है, कृपया – khris

+0

@khris के लिए अद्यतन प्रश्न में देखें एसडीके डाउनलोड करने और अपने क्लाइंट पर निकालने का प्रयास करें, इसे एसडीके/फ़ोल्डर शामिल करना चाहिए। मैंने जवाब के लिंक को जोड़ा। –

+0

क्या आप क्लाइंट एसडीके पेज में सीधा लिंक दे सकते हैं, मुझे कंटेंट मैनेजमेंट एसडीके जैसी कई चीजें दिखाई देती हैं और मुझे नहीं पता कि मुझे वास्तव में डाउनलोड करने की ज़रूरत है। धन्यवाद – khris

0

सुनिश्चित करें कि आप एक ग्राहक एसडीके अपने पथ में मौजूद कर दिया है।

इसके अलावा मैं अपने .bash_rc को यह जोड़ सकता हूँ करने के लिए

export DYLD_LIBRARY_PATH=$ORACLE_HOME 

इस के अलावा, अजगर 2.7 जो अजगर 3.4 में डिफ़ॉल्ट रूप से उपलब्ध है Python.h के साथ नहीं आता था। इसलिए मैं पाइथन-डेवेल पैकेज

yum install python-devel 

को हल करने का सुझाव भी दूंगा।

1
  1. स्थापित oracle_client_basic

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
    
  2. पिप का उपयोग स्थापित

    python -m pip install cx_Oracle 
    
  3. ldconfig जोड़ना

    1. उदाहरण के लिए, अपने ग्राहक स्थान ढूंढें: /u01/app/oracle/product/11.2.0/client_1/lib
    2. vi /etc/ld.so.conf.d/oracle.conf

      इसे में इस स्थान को जोड़ें:

      /u01/app/oracle/product/11.2.0/client_1/lib 
      
    3. ldconfig
  4. import cx_oracle
संबंधित मुद्दे