2013-06-30 5 views
25

मैं निरंतर काम करने के लिए Continuum.io से Anaconda पैकेज के साथ काम करना शुरू कर रहा हूं। मैं एनाकोंडा को चलाने और चलाने में सक्षम हूं, लेकिन मैं यह नहीं बता सकता कि क्या एनाकोंडा ने प्रत्येक नए पर्यावरण के लिए एक नया पायथन पाथ पर्यावरण चर बनाया है, या क्या यह सामान्य प्रणाली पायथनपत पर निर्भर करता है? मुझे दस्तावेज़ीकरण में इस पर कोई जानकारी नहीं मिली। इसके अलावा, जब मैंने printenv किया था, तो मुझे नव निर्मित वातावरण में एक पायथनपैथ चर नहीं दिखाई दिया - हालांकि मुझे कुछ नए एनाकोंडा ने पर्यावरण चर बनाया। सबसे अच्छा मुझे मिल सकता है कि एनाकोंडा ने कुछ एनाकोंडा निर्देशिकाएं और नई पर्यावरण निर्देशिका को पीएटीएच वैरिएबल के सिर में जोड़ा - लेकिन यह सिस्टम वातावरण से नए पैकेज को जरूरी नहीं है लेकिन यह करीब है। क्या किसी को इस प्रश्न का उत्तर पता है या इस चिंता से निपटने का एक तरीका मिला है।क्या एनाकोंडा प्रत्येक नए पर्यावरण के लिए एक अलग पायथन पाथ चर बनाते हैं?

+0

लेकिन हर पाइथन पैकेज एनाकोंडा में उपलब्ध नहीं है, तो जब आप संकुल को स्थापित करने के लिए पीआईपी का उपयोग भी करते हैं, तो सामान्य क्या है? फिर आपको एक Python-version-specific) PythonPATH की आवश्यकता है, इसलिए आपको प्रत्येक शैल में इसे बदलने/सेट करने के बारे में चिंता करने की आवश्यकता है/प्रत्येक बार जब आप पाइथन संस्करण को बदलने के लिए 'सक्रिय' स्क्रिप्ट स्रोत करते हैं। सही? – smci

उत्तर

23

नहीं, एकमात्र चीज जिसे एनाकोंडा पर्यावरण के लिए संशोधित करने की आवश्यकता है वह पाथ है (ताकि यह पर्यावरण से bin/ निर्देशिका, या Scripts\ पर सही पायथन प्राप्त हो)।

एनाकोंडा वातावरण काम करने का तरीका यह है कि वे पर्यावरण में स्थापित हर चीज को कड़ी मेहनत करते हैं। सभी उद्देश्यों और उद्देश्यों के लिए, इसका मतलब है कि प्रत्येक पर्यावरण पाइथन और सभी संकुलों की पूरी तरह से अलग स्थापना है। कड़ी लिंक का उपयोग करके, यह कुशलतापूर्वक किया जाता है। इस प्रकार, PythonPATH के साथ गड़बड़ करने की कोई आवश्यकता नहीं है क्योंकि पर्यावरण में पाइथन बाइनरी पर्यावरण में साइट-पैकेज, और पर्यावरण की lib, और इसी तरह से पहले से ही खोजता है।

+0

आह उत्कृष्ट। यह बहुत बढ़िया बात है। वास्तव में मैं क्या जानना चाहता था। एक बार फिर धन्यवाद। – krishnab

+0

विंडोज मशीन पर इसका उपयोग करना और दो इंस्टॉलेशन से PythonPATH निश्चित रूप से भिन्न है। एनाकोंडा में मेरे मॉड्यूल निर्देशिका नहीं है। संदर्भ के लिए मैंने इसे विंडोज 7 में उन्नत सिस्टम सेटिंग्स से जोड़ा। पाइथन से ठीक लगता है यह आईपीथॉन नोटबुक में है कि यह टूटा हुआ है – Joop

15

एनाकोंडा PYTHONPATH का उपयोग नहीं करता है। हालांकि किसी को ध्यान रखना चाहिए कि PYTHONPATH सेट किया गया है, तो यह उस लाइब्रेरी को लोड करने के लिए उपयोग किया जा सकता है जो एनाकोंडा पर्यावरण में नहीं है।

export PYTHONPATH=/home/john/share/usr/anaconda/lib/python 
source activate anaconda-2.7 
python 
>>>> import pandas as pd 
/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/__init__.py", line 6, in <module> 
    from . import hashtable, tslib, lib 
ImportError: /home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8 

unsetting PYTHONPATH लोड किया जा रहा से गलत पांडा lib से बचाता है: यही कारण है कि एक वातावरण सक्रिय करने से पहले यह एक गलत पांडा lib करने के लिए एक

unset PYTHONPATH 

उदाहरण के लिए इस PYTHONPATH अंक करने के लिए अच्छा हो सकता है है :

unset PYTHONPATH 
source activate anaconda-2.7 
python 
>>>> import pandas as pd 
>>>> 
+2

क्या स्थानीय रूप से उत्पादित फ़ाइलों और मॉड्यूल को इंगित करने के लिए PYTHONPATH का उपयोग करना सुरक्षित है? क्या PythonPATH का उपयोग करने से बेहतर तरीका है? – garyp

+0

मुझे लगता है कि देव काम करता है जो ठीक काम करता है। मैं डीआईआर से पायथन चलाता हूं जिसमें मॉड्यूल है जिस पर मैं काम कर रहा हूं, जो मूल रूप से वही बात है। आप 'pip install -e python_module_dir' का उपयोग एनाकोंडा एनवी लोड के साथ भी कर सकते हैं ताकि आपने' पायथनपथ 'अपडेट नहीं किया हो। – inodb

संबंधित मुद्दे