ImportError: DLL load failed while importing _ssl: 找不到指定的模块。 bat 脚本运行 django 报错。

起因

运行 Django 网站报错。在 Pycharm 中运行的时候没问题,同样的命令,bat脚本运行就报错。

刚开始以为是参数的锅,后来发现是环境变量没配好。但最终还是用临时环境变量解决。

解决

ssl 模块并不是不存在,只是没被找到罢了。

一般来说,把 ssl 所在路径,加到环境变量里即可:

ssl 在 Library\bin 目录下。

确保这三个路径都添加了,避免麻烦。

D:\xxx\anaconda3-2020\Library\bin
D:\xxx\anaconda3-2020\Scripts
D:\xxx\anaconda3-2020

但是我发现这种做法对我没用,依然报错 _ssl。

在 Pycharm 里可以运行,用 cmd 同样的命令也可以运行,偏偏用 bat 脚本就不行。

我在 bat 和 cmd 分别打印出 python 版本和 PATH 路径值,发现 bat 路径竟然少了 bin 的路径。
我不明白为什么明明刚刚添加的路径没起作用,也许重启能解决。

我的解决办法: 增加临时环境变量。只要程序运行期间起作用就行了。

完整的测试脚本如下:

@echo off
python --version
echo %PATH%
set sslpath=D:\xxx\anaconda3-2020\Library\bin
set path=%sslpath%;%path%
python manage.py runserver 0.0.0.0:8001
REM D:\\xxx\\anaconda3-2020\\python.exe E:\\yyy\\manage.py runserver 0.0.0.0:8001 --noreload
pause

你可能感兴趣的:(ssl,django,windows)