2010-08-02 11 views
41

जोड़े मैंने सोचा था किको अजगर पथ मैक ओएस एक्स

import sys 
sys.path.append("/home/me/mydir") 

मेरी PYTHONPATH

करने के लिए एक निर्देशिका जोड़कर है अगर मैं प्रिंट sys.path मेरी dir वहाँ में है।

फिर मैं एक नया आदेश खोलता हूं और यह अब और नहीं है।

लेकिन किसी भी तरह से पाइथन उस डीआईआर में सहेजे गए मॉड्यूल आयात नहीं कर सकता।

मैं क्या गलत कर रहा हूं?

मैंने पढ़ा .profile या .bash_profile चाल करेगा।

मैं जोड़ने के लिए है:

PATH="/Me//Documents/mydir:$PYTHONPATH" 
export PATH 

यह काम करने के लिए?

उत्तर

56

sys.path में संशोधन केवल उस पायथन दुभाषिया के जीवन के लिए आवेदन करते हैं। आप इसे करना चाहते हैं तो स्थायी रूप से आप PYTHONPATH वातावरण चर संशोधित करने की आवश्यकता:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH" 
export PYTHONPATH 

ध्यान दें कि PATH निष्पादनयोग्य के लिए सिस्टम पथ है, जो पूरी तरह से अलग है।

** आप ~/.bash_profile में ऊपर लिख सकते हैं और स्रोत इसे प्रयोग source ~/.bash_profile

+3

बहुत बहुत धन्यवाद (भूल गया)। मैं कहां रखूं? .bash_profile में .profile में? Macpython ?: MacPython 2.6 # के लिए # स्थापना पथ से पहले मूल संस्करण .bash_profile.pysave पथ में सहेजा जाता है = "/ Library/Frameworks/Python.framework/संस्करण/2.6/बिन: $ {पथ}" निर्यात पाथ या उसके बाद? क्या ऑर्डर मायने रखता है? – MacPython

+1

'.bash_profile'। यदि आपके पास पहले से '.bash_profile' है, तो मेरा मानना ​​है कि बैश' .profile' को अनदेखा करता है। आदेश यहां कोई फर्क नहीं पड़ता, क्योंकि वे दो अलग-अलग पर्यावरण चर हैं। –

+0

@ फ़ेलिक्स, ध्यान दें कि मैकपीथन कोड वह 'पथ' (सिस्टम पथ), एक अलग चर के साथ सौदा करता है। –

6
नहीं

यकीन है कि क्यों मैथ्यू के समाधान मेरे लिए काम नहीं किया (हो सकता है कि मुझे क्या करना OSX10.8 या शायद कुछ का उपयोग कर रहा मैकपोर्ट के साथ)। लेकिन मैं ~/.profile

export PYTHONPATH=/path/to/dir:$PYTHONPATH 

पर फ़ाइल के अंत में निम्नलिखित जोड़ा मेरी निर्देशिका PYTHONPATH पर है -

my-macbook:~ aidan$ python 
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', '/path/to/dir', ... 

और मुझे लगता है कि निर्देशिका से मॉड्यूल आयात कर सकते हैं।

+0

मैक ओएसएक्स टर्मिनल पर, अगर मैं बस पाइथन लिखता हूं, तो यह अजगर 2.7 पर जा रहा है और यदि मैं python3.6 लिखता हूं तो यह संस्करण 3.6 खोलता है। क्या पाइथन को पायथन 3.6 पर इंगित करने के लिए मैं कुछ भी कर सकता हूं –

1

मैथ्यू का उत्तर टर्मिनल पायथन खोल के लिए काम करता है, लेकिन यह मेरे मामले में आईडीईएल खोल के लिए काम नहीं करता है क्योंकि पाइथन 2.7.7 के साथ उन सभी को बदलने से पहले पायथन के कई संस्करण मौजूद थे। मैंने आईडीएलई के साथ समस्या का समाधान कैसे किया।

  1. टर्मिनल में, cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. तो sudo nano idlemain.py, पासवर्ड दर्ज यदि आवश्यक हो। निर्देशिका जहां अजगर मॉड्यूल
  3. जोड़े जाने के लिए परिवर्तन को बचाने के लिए, Ctrl के साथ उद्धरण की जगह ले सामग्री + x और अब खुला निष्क्रिय दर्ज करें और आयात करने का प्रयास करें:
  4. os.chdir(os.path.expanduser('~/Documents')) इस लाइन के बाद, मैं sys.path.append("/Users/admin/Downloads....")नोट जोड़ा पायथन मॉड्यूल, मेरे लिए कोई त्रुटि नहीं !!!
2

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

यह मैक के लिए विशिष्ट है, क्योंकि मेरे विंडोज पीसी पर पायथनपैथ पर्यावरण चर सेट करने से स्पाइडर में पायथनपैथ मैनेजर का उपयोग किए बिना अपेक्षित व्यवहार (मॉड्यूल पाए जाते हैं) देता है।