6

我是 python 新手。我将 python 2.7.1 与 django 1.5.1 一起使用。

当我输入这段代码时:

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]

在我settings.py的,终端显示以下错误:

File "/home/pipo/Desktop/mysite/mysite/settings.py", line 116, in <module>
    [os.path.join(BASE_DIR, 'templates')]
NameError: name 'os' is not defined

有人可以告诉我这个错误的原因吗?

4

4 回答 4

12

要修复此错误:

File "/home/myUser/path/to/project/projectName/projectName/settings.py", line 116, in <module>
  os.path.join(BASE_DIR, 'templates')
NameError: name 'os' is not defined

我不得不在开头添加这一行settings.py

import os

然后我得到这个错误:

File "/home/myUser/path/to/project/projectName/projectName/settings.py", line 116, in <module>
  os.path.join(BASE_DIR, 'templates')
NameError: name 'BASE_DIR' is not defined

为了解决这个问题,我将此行添加到settings.py

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

这将返回当前文件路径。您可能需要os.path.join(BASE_DIR, 'templates')相应地更改零件。

于 2013-06-26T17:09:17.360 回答
0

这就是我让它工作的方式:

import os
...
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
...
TEMPLATES = [
{
    ...
    'DIRS': [os.path.join(BASE_DIR, 'core/templates')],
    ...
},]
于 2021-03-07T15:03:43.593 回答
0

简单地改变

DIRS = [os.path.join(BASE_DIR, 'templates')]

settings.py进入_

[BASE_DIR/'templates']

参考:https ://docs.djangoproject.com/en/3.2/howto/overriding-templates/

于 2021-08-19T19:17:08.003 回答
0

要修复错误:

File "C:\Users\shahi\telusko_projects\telusko\telusko\settings.py", line 57, in <module>
  'DIRS': [os.path.join(BASE_DIR,'templates')],
NameError: name 'os' is not defined

只需在顶部添加这一行settings.py

from pathlib import Path,os
于 2021-02-18T14:42:04.610 回答