PROJECT_ROOT = os.path.dirname(__ file__)错误

时间:2011-04-05 17:06:34

标签: django

当我尝试时:
PROJECT_ROOT = os.path.dirname(__file__)
我得到这样的错误:
Traceback (most recent call last):
File "< stdin>", line 1, in <module>
NameError: name '__file__' is not defined

有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

通过实际模块而不是Python REPL运行该行代码。

答案 1 :(得分: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__是为测试模块

定义的

答案 2 :(得分:3)

请在settings.py中尝试此操作:

    PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))