Django在使用logging日志模块时报错无法操作文件PermissionError: [WinError 32]
--- Logging error ---
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\logging\handlers.py", line 69, in emit
self.doRollover()
File "C:\Program Files\Python37\lib\logging\handlers.py", line 170, in doRollover
self.rotate(self.baseFilename, dfn)
File "C:\Program Files\Python37\lib\logging\handlers.py", line 110, in rotate
os.rename(source, dest)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'D:\\ALEX\\python\\operationalsystem\\log\\console.log' -> 'D:\\ALEX\\python\\operationalsystem\\log\\console.log.1'
问题原因
这个问题只会在开发的时候遇到,而且配置是写入到setting.py配置文件,我们定义了日志文件大小,当日志满了的时候,这时候就会遇到这个问题, 因为在使用Pycharm运行django的时候我们启用两个进程都会去初始化setting.py配置,一个是我们正常访问的,一个是监控代码变化的(你会发现你每次修改一些代码,django会自己重新构建,就是这个进程完成的),由于都占有着文件的句柄,所有在归档的时候失败了,
解决办法,在启用django项目时加上--noreload参数即可,在菜单栏选择Run->edit configuration
在 Additional options添加即可解决,重新运行django项目就没有报错信息了
- 本文标签: python语言
- 本文链接: https://www.iamlk.cn/article/40
- 版权声明: 本文由Leonidax原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权