2011-04-05 13 views
5

मैं जब कोशिश:
PROJECT_ROOT = os.path.dirname(__file__)
मैं इस तरह त्रुटि मिलती है:
Traceback (most recent call last):
File "< stdin>", line 1, in <module>
NameError: name '__file__' is not defined
PROJECT_ROOT = os.path.dirname (__ file__) त्रुटि

कोई जानता है कि यह कैसे तय करने के लिए?

उत्तर

4

पायथन REPL के बजाय वास्तविक मॉड्यूल के माध्यम से कोड की उस पंक्ति को चलाएं।

+0

मैं स्पष्ट रूप से पार्टी में इस प्रयास करें: 'PROJECT_ROOT = os.path.dirname (__ file__) ' और अब मुझे मिलता है: ' -बैश: अप्रत्याशित टोकन के पास वाक्यविन्यास त्रुटि '(' ' मुझे अभी भी बैश के बारे में कुछ महत्वपूर्ण चीजें नहीं हैं, मुझे लगता है .. क्या कोई समाधान है जो आप प्रदान कर सकते हैं? – krzyhub

+1

आपको * वास्तव में * बैश प्रॉम्प्ट पर पायथन कोड लिखना बंद करना होगा। और जब आप इसमें हों, तो ट्यूटोरियल पढ़ें। http://docs.python.org/tutorial/index.html –

+0

तो मेरे पास बहुत काम है। सबको धन्यवाद। – krzyhub

4

यदि आप अपने दुभाषिया से __file__ का उपयोग करने का प्रयास कर रहे हैं, तो __file__ परिभाषित नहीं किया गया है। यह इरादा व्यवहार है। __file__ मॉड्यूल की एक विशेषता है। Here विषय के बारे में एक चर्चा है।

आप ऐसा करके परीक्षण कर सकते हैं:

~$ echo "print __file__" > test.py 
~$ python test.py 
test.py 

__file__ मॉड्यूल के भीतर से काम करता है।

~$ python 
Python 2.7.0+ (r27:82500, Sep 15 2010, 18:04:55) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> print __file__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name '__file__' is not defined 

__file__ परिभाषित नहीं है

>>> import test 
test.pyc 
>>> print __file__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name '__file__' is not defined 

__file__

>>> print test.__file__ 
test.pyc 
>>> 
परिभाषित नहीं है:

अब दुभाषिया से

__file__ परीक्षण मॉड्यूल

+1

यह मुझे कुछ समझाता है, लेकिन मुझे अभी भी पता नहीं है कि मेरी समस्या का समाधान क्या है। मैं अजगर पुस्तक नहीं पढ़ना चाहता, मुझे सिर्फ एक फ़ोल्डर में दो अनुप्रयोगों के साथ छोटी django-powerade परियोजना बनाने की जरूरत है। यह एक फ़ोल्डर में दो अनुप्रयोग होना चाहिए। लेकिन कुछ दिशाओं के लिए धन्यवाद। – krzyhub

2

के लिए परिभाषित किया गया है अपने settings.py में इस प्रयास करें:

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 
संबंधित मुद्दे