提问人:Max Mustermann 提问时间:12/30/2020 更新时间:12/30/2020 访问量:5587
从批处理文件启动时出现“ImportError: DLL load failed while importing _ssl”
"ImportError: DLL load failed while importing _ssl" when launching from batch file
问:
我想通过 python 脚本发送邮件并使用批处理文件启动脚本。从批处理文件启动时出现错误“ImportError:导入_ssl时DLL加载失败”,当直接从我的spyder编辑器运行python脚本时,它按预期工作。
我正在使用 Windows 10 和新安装的带有 python 3.8 的 anaconda 环境,该环境安装在“C:\Users\Max”中。
我的批处理文件如下所示:
"C:\Users\Max\anaconda3\python.exe" "C:\Users\Max\Documents\Python Scripts\script.py"
我的 Python Skript 看起来像这样:
import smtplib, ssl
port = 465
context = ssl.create_default_context()
with smtplib.SMTP_SSL("smtp.gmail.com", port) as server:
server.login("address[email protected]", "password")
server.sendmail("[email protected]", "[email protected]", "message")
为什么从批处理文件调用脚本时行为不同,我该如何解决此问题?
答:
3赞
Max Mustermann
12/30/2020
#1
好的,我明白了!
我首先必须将“C:\Users\Max\anaconda3\condabin”放在我的 PATH 中,以便在我的 Windows cmd 中使用 conda 命令,然后将我的批处理文件修改为
call activate base
"C:\Users\Max\anaconda3\python.exe" "C:\Users\Max\Documents\Python Scripts\script.py"
call conda deactivate
评论
1赞
Magoo
12/30/2020
问题解决了,似乎 - 并且发布了明确的解决方案 - 非常好!
评论
Python.exe
echo %cd%&pause
echo
cd thedirectorythatworks
X:
X