我在运行 jupyter 笔记本时遇到错误。错误复制:
python --version
Python 3.7.9
python
import win32api
错误是:
ImportError: DLL load failed
在做了一些 stackoverflow 之后,我发现缺少 2 个 dll 文件,即:pythoncom37.dll
和 pywintypes37.dll
我还知道我可以在 Scripts 文件夹中运行此 post 命令:
pywin32_postinstall.py
。我运行了这个脚本。重新启动了我的电脑。我手动下载这两个dll并将其复制到我的system32.dll中。手动下载后,我开始出现不同类型的错误:ImportError: DLL load failed: %1 is not a valid Win32 application
我使用了 anaconda 并运行了我的 jupyter 笔记本,这是我的主要目标,但是你能让我知道出了什么问题吗?
我最近遇到过这个问题,但是使用的是不同版本的 DLL。为我解决这个问题的是使用不同版本的 pywin32。 我的解决方案(conda env,python 3.8.5):
pip install pywin32==300
或尝试 225、227、228。最新的 pywin32(截至本文为 301)似乎存在 dll 搜索问题(如果您使用的任何版本也存在 dll 搜索问题,我不会感到惊讶)。 301 在您的问题开始后已发布,但您可能仍然遇到类似的问题。
目前存在 pywin32 DLL 加载失败的问题:https://github.com/mhammond/pywin32/issues/1709
涉及的因素(根据我的经验)包括您的 PATH 变量(如果您使用的是 conda)。我自己还没有测试过,但我很想知道在没有 conda 的情况下是否会出现此问题。如果找到的第一个 dll 是 301 的 dll,那么这个问题就不再发生。就我而言,这意味着将它们放在我的 C:\Windows\System32 文件夹中(是的,我在 Windows 上;高兴)。
因此,可能的解决方案#2 是运行 pywin32 安装后脚本,该脚本应位于 venv/Scripts/pywin32_postinstall.py 下
要尝试该解决方案,请打开 ADMIN 命令提示符(非常重要的是它是 admin),导航到您的 venv,然后运行:
ppython.exe Scripts\pywin32_postinstall.py --install
您不必这样做,但如果您只需要一个一次性解决方案并且它有效,那就太好了!
pip install --upgrade pywin32 ==225
为我工作。尝试过300版本,不成功。
问题是 Spyder。我卸载并重新安装了最新版本,一切都开始工作了。去算一下...