Windows11下Django启动服务器遇OSError: [Errno22]的解决方法
修复Windows 11下Django项目启动的路径错误
你遇到的错误不是编码问题,是Windows系统不允许路径中出现冒号导致的。报错路径里的admin:admin是Unix/Linux风格的模板路径分隔方式,Windows无法识别这种格式。
以下是几种可行的修复方法:
方法一:临时修改admin_tools包的路径和配置
- 找到虚拟环境中admin_tools的模板目录:
C:\Users\irina\project\.venv\Lib\site-packages\admin_tools\theming\templates\ - 把目录里的
admin:admin文件夹重命名为admin_admin(或其他不含特殊字符的名称) - 找到admin_tools中引用该路径的配置文件(比如
admin_tools/theming/__init__.py或相关模板注册代码),把里面的admin:admin替换成你重命名后的admin_admin
方法二:用WSL2运行项目
- 在Windows 11中启用WSL2,安装任意Linux发行版(比如Ubuntu)
- 切换到WSL环境下,重新克隆项目、用Poetry安装依赖、启动Django服务器。Linux环境支持Unix风格的路径分隔符,不会出现这个问题。
方法三:替换或降级admin_tools包
- 查看项目
pyproject.toml中admin_tools的版本,尝试降级到更早的兼容Windows的版本,执行poetry update admin_tools生效 - 如果找不到合适的兼容版本,可以用其他Django admin美化工具替代,比如django-jazzmin、django-suit等,替换后更新依赖重新安装
内容的提问来源于stack exchange,提问作者Iren E
相关产品推荐
相关产品推荐

