Django新手执行python manage.py runserver遇WinError123错误求解决
Hey 兄弟,我刚帮你梳理了这个报错的常见解决思路,这在Django新手群体里算是比较典型的路径/配置类问题,咱们一步步来排查:
先贴出你遇到的错误信息方便对照:
正在通过StatReloader监视文件变更
正在执行系统检查...
主线程django-main-thread中出现异常:
回溯(最近的调用最后):
文件"C:\Python\Python38\lib\threading.py",第932行,在_bootstrap_inner中
self.run()
OSError: [WinError 123] 文件名、目录名或卷标语法不正确: ''
下面是具体的解决步骤:
检查项目路径的合法性
Windows系统对路径里的特殊字符(空格、中文、感叹号、&等)兼容性极差,Django的文件监视模块StatReloader扫描这类路径时很容易触发WinError 123。你先看看你的项目是不是放在类似C:\Users\张三\Desktop\我的Django项目或者C:\Django Projects\demo这种路径里?赶紧把整个项目移到纯英文、无特殊字符的路径下,比如C:\Django_Projects\my_first_demo。核对settings.py里的路径配置
新手常踩的坑是STATIC_ROOT、MEDIA_ROOT这类路径配置写错。比如直接硬编码带中文的路径,或者相对路径拼接错误。推荐用BASE_DIR来动态拼接路径,既稳妥又不容易出错,示例写法:import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_ROOT = os.path.join(BASE_DIR, 'media')检查一下你的配置里有没有多余的引号、拼写错误,或者路径分隔符用错(Windows用
\但Python里要写\\或者用原始字符串r'C:\xxx')。清理Python编译缓存
项目里的__pycache__文件夹和.pyc编译文件偶尔会导致奇怪的加载异常。你可以手动删除项目根目录下所有的__pycache__文件夹,以及每个app子目录里的__pycache__,之后再重新运行python manage.py runserver试试。重建虚拟环境(如果使用的话)
要是你用了虚拟环境,有可能是虚拟环境的依赖文件损坏了。先退出虚拟环境,删掉原来的虚拟环境文件夹,重新创建一个新的虚拟环境,再重新安装Django和项目依赖,最后启动项目看看问题是否解决。
内容的提问来源于stack exchange,提问作者Srinu Dasari

