在python 3.7中导入win32api导致dll导入错误

flmtquvp  于 2023-03-13  发布在  Python
关注(0)|答案(3)|浏览(267)

我在运行jupyter notebook时遇到错误。错误复制:

python --version
Python 3.7.9
python
import win32api

错误为:ImportError: DLL load failed做了一些堆栈溢出后,我知道有2个dll文件丢失,即:pythoncom37.dllpywintypes37.dll
我还知道我可以运行以下post命令:Scripts文件夹中的pywin32_postinstall.py.我运行了这个脚本.重新启动我的pc.我手动下载了这两个dll并复制到我的system32.手动下载后,我开始出现不同类型的错误:ImportError: DLL load failed: %1 is not a valid Win32 application
我用水蟒和运行我的木星笔记本这是我的主要目标,但你能让我意识到什么是错的?

bcs8qyzn

bcs8qyzn1#

我最近遇到了这个问题,但是使用了不同版本的DLL。我的解决方案是使用不同版本的pywin 32。我的解决方案(conda env,python 3.8.5):

pip install pywin32==300

或者试试225,227,228.最新的pywin 32(301)似乎有dll搜索问题(如果你使用的版本也有dll搜索问题,我不会感到惊讶).301是在你的问题开始后发布的,但你可能还是有类似的问题。
当前存在一个关于pywin 32 DLL加载失败的问题:https://github.com/mhammond/pywin32/issues/1709
(根据我的经验)包括你的PATH变量(如果你使用conda)。我没有亲自测试过,但是我很好奇这个问题是否会在没有conda的情况下发生。如果找到的第一个dll是301的,这个问题就不会发生。在我的情况下,这意味着把它们放在我的C:\Windows\System32文件夹中(是的,我使用的是Windows;喜悦)。
因此,一个可能的解决方案#2是运行pywin 32安装后脚本,该脚本应该位于venv/Scripts/pywin32_postinstall.py下
要尝试该解决方案,请打开ADMIN命令提示符(必须是admin),导航到venv,然后运行:

ppython.exe Scripts\pywin32_postinstall.py --install

你不应该这样做,但如果你只是需要一个一次性的解决方案,它的工作,太好了!

jutyujz0

jutyujz02#

pip install --upgrade pywin32 ==225对我有效。尝试了版本300,但不成功。

ws51t4hk

ws51t4hk3#

顺便说一句:我花了几个小时在这个“乐趣”上。最后结果证明Python 3. 8运行得很好(正确执行了“import win32 comidoclient”行)--而问题是Spyder。我卸载并重新安装了最新版本,一切都开始工作了。想想看...

相关问题