我正在尝试使用 Windows 批处理文件来运行 python 代码,但是我遇到了以下错误:

Posted

技术标签:

【中文标题】我正在尝试使用 Windows 批处理文件来运行 python 代码,但是我遇到了以下错误:【英文标题】:I'm trying to use a windows batch file to run python code, however I am encountering the following errors: 【发布时间】:2021-08-07 01:51:04 【问题描述】:

这是我主要试图开始工作的代码。当我在 Spyder (Python 3.8) 中运行它时它运行良好。但是,在运行 .bat 文件时,我收到以下错误消息。

urllib3.exceptions.SSLError: 无法连接到 HTTPS URL,因为 SSL 模块不可用。

我还尝试运行一段不太复杂的代码,但它也不起作用,它的错误消息如下。 (这现在有效,见下文)

ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块。

我的 .bat 文件代码如下(我认为我的 .bat 文件代码很好,因为其中一个现在可以完美运行,所以这不是路径问题):

C:\Users\Thomas\Desktop\Coding\Python\Chess_Files>"C:\Users\Thomas\Anaconda3\python.exe" "C:\Users\Thomas\Desktop\Coding\Python\Python_Code\lichessAPI.py"
C:\Users\Thomas\Desktop\Coding\Python\Chess_Files>"C:\Users\Thomas\Anaconda3\python.exe" "C:\Users\Thomas\Desktop\Coding\Python\Python_Code\planetorbits.py"

更新: 通过使用 pip 卸载并重新安装 numpy 和 matplotlib,我能够使第二个 .bat 代码文件工作。但是,第一个 .bat 文件仍然遇到同样的错误。

有人建议我安装 openSSL,我不确定那是什么以及为什么我不能只使用 urllib3,因为当我自己在 anaconda 中运行代码时它可以工作。

最终更新: 我找到了一个解决方案并将其发布在下面。希望这会有所帮助。

【问题讨论】:

我建议比较运行 .bat 文件的命令工具中的环境和 Spyder 内部的环境,寻找 PATH、PYTHONPATH 等与定位模块有关的任何内容。 你贴的路径很好,应该是这样的。。你有OpenSSL安装吗,如果没有,安装它。 我的建议是比较您使用的两个环境中 PATH 的值。 【参考方案1】:

我按照 Matt Dnv 的建议解决了这个问题:

Requests (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.") Error in PyCharm requesting website

我复制并粘贴了以下内容:

libcrypto-1_1-x64.*
libssl-1_1-x64.*

从 D:\Anaconda3\Library\bin 到 D:\Anaconda3\DLLs

【讨论】:

以上是关于我正在尝试使用 Windows 批处理文件来运行 python 代码,但是我遇到了以下错误:的主要内容,如果未能解决你的问题,请参考以下文章

Windows 8:.phar 文件,你想如何打开

为啥我无法在 Windows 10 中运行的詹金斯管道中运行批处理文件?

检查 Windows 服务列表是不是正在运行,如果不是从批处理文件启动

Windows 批处理脚本指南: 日志

windows批处理文件不退出

Pentaho 作业未通过运行批处理文件执行