欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)] NameError: name ‘os‘ is not defined

程序员文章站 2022-11-23 08:53:49
过年了准备跳槽,现在python这么火,感觉学习一下可能会很有用,于是网上找教程,在搭建Diango+python的时候突然一脸懵逼,一步步按照网上说的来的,可是第一步就报错了我们可以看到报错提示os未定义,翻了下配置文件确实上面没有定义这个os但是使用的BASE_DIR确有定义,我也是刚学python,不清楚这个os具体代表什么,为什么没有,可能是版本不同?我使用的python是3.9.2网上教程使用的大部分还是3.6之前的然后我查了下资料,说这里只是指定那个文件templates的目录而...

过年了准备跳槽,现在python这么火,感觉学习一下可能会很有用,于是网上找教程,在搭建Diango+python的时候突然一脸懵逼,一步步按照网上说的来的,可是第一步就报错了

python ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)] NameError: name ‘os‘ is not defined
python ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)] NameError: name ‘os‘ is not defined

我们可以看到报错提示os未定义,翻了下配置文件确实上面没有定义这个os
但是使用的BASE_DIR确有定义,我也是刚学python,不清楚这个os具体代表什么,为什么没有,可能是版本不同?
python ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)] NameError: name ‘os‘ is not defined

我使用的python是3.9.2
网上教程使用的大部分还是3.6之前的
然后我查了下资料,说这里只是指定那个文件templates的目录而已
将os.path.join(BASE_DIR, ‘templates’)改为’templates’是一样的意思
于是我就删除了
删除了再运行就没报错了


20210224更新
今天在网上又逛了一圈
在一篇文章中看到了os为什么报错的原因

出错信息如下:
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]
NameError: name ‘os’ is not defined
在项目下settings.py文件中“TEMPLATES”中,默认会增加一行“‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]”用于配置模板地址。
NameError: name ‘os’ is not defined 说明没有找到OS
解决方法:
1、在settings.py文件头部增导入OS
import os
2、不用增加导入,修改默认生成的“‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]”,修改如下:
‘DIRS’: [Path(BASE_DIR, ‘templates’)]
原因说明:
3.4版本之后,建议pathlib代替os

针对3.4版本之后的更改我有个疑问,我看教程用的3.6.1的也没报错,不知道有没大佬解答下。

本文地址:https://blog.csdn.net/weixin_44887276/article/details/113988946

相关标签: python