Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何修复”;导入错误:DLL加载失败“;导入win32api时_Python_Python 3.x_Winapi_Pip_Pywin32 - Fatal编程技术网

Python “如何修复”;导入错误:DLL加载失败“;导入win32api时

Python “如何修复”;导入错误:DLL加载失败“;导入win32api时,python,python-3.x,winapi,pip,pywin32,Python,Python 3.x,Winapi,Pip,Pywin32,我正在Python 3.8中设置一个自动单击程序,我需要用于GetAsyncKeyState的win32api,但它总是给我以下错误: >>> import win32api Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: DLL load failed while importing win32api: The specified

我正在Python 3.8中设置一个自动单击程序,我需要用于GetAsyncKeyState的win32api,但它总是给我以下错误:

>>> import win32api
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed while importing win32api: The specified module could not be found.
它成功地安装了,但没有任何变化。我也尝试卸载和重新安装python。我也尝试过以同样的方式安装“django”,当我导入django时,它实际上可以工作,所以我认为这只是win32api的问题

>>> import win32api

我希望输出为无,但实际输出总是错误^^

pypiwin32
是一个过时的发行版。卸载它并安装
pywin32

pip uninstall pypiwin32
pip install pywin32

pypiwin32
是一个过时的发行版。卸载它并安装
pywin32

pip uninstall pypiwin32
pip install pywin32

对于我来说,安装并重新安装pywin32没有帮助。将这两个文件从
[Anaconda的安装目录]\Lib\site packages\pywin32\u system32
复制到
C:\Windows\system32
后,它就可以工作了


我的环境是miniconda中的python 3.8。这两个文件是
pythoncom38.dll
pywintypes38.dll

对于我的情况,安装和重新安装pywin32没有帮助。将这两个文件从
[Anaconda的安装目录]\Lib\site packages\pywin32\u system32
复制到
C:\Windows\system32
后,它就可以工作了


我的环境是miniconda中的python 3.8。这两个文件是
pythoncom38.dll
pywintypes38.dll
runscripts\pywin32\u postinstall.py-在管理命令提示符下安装

参考:

编辑:User@JoyfulPanda发出警告:


使用管理员权限运行此脚本还会将pythoncom37.dll、pywintypes37.dll(对应于pywin32版本)复制到
C:\WINDOWS\system32
,从而有效地覆盖已有Anaconda的相应dll版本。这会在打开(Windows上)“开始菜单>蟒蛇3(64位)>蟒蛇提示(虚拟环境名称)”时导致问题。默认情况下,至少Anaconda 2019.07安装了pywin32 223。Pywin32 224可能有效,但225-228会给蟒蛇带来问题(2019.07)


在管理命令提示符下运行Scripts\pywin32\u postinstall.py-安装

参考:

编辑:User@JoyfulPanda发出警告:


使用管理员权限运行此脚本还会将pythoncom37.dll、pywintypes37.dll(对应于pywin32版本)复制到
C:\WINDOWS\system32
,从而有效地覆盖已有Anaconda的相应dll版本。这会在打开(Windows上)“开始菜单>蟒蛇3(64位)>蟒蛇提示(虚拟环境名称)”时导致问题。默认情况下,至少Anaconda 2019.07安装了pywin32 223。Pywin32 224可能有效,但225-228会给蟒蛇带来问题(2019.07)


在该评论问题的参考中

这个Lib\site packages\pywin32\u system32路径在哪里

转到C目录,用户,用户名,anaconda3,Lib,站点包,pywin32_system32。你很容易找到


C:\Users\HP\anaconda3\Lib\site packages\pywin32\u system32

在本评论问题的参考中

这个Lib\site packages\pywin32\u system32路径在哪里

转到C目录,用户,用户名,anaconda3,Lib,站点包,pywin32_system32。你很容易找到


C:\Users\HP\anaconda3\Lib\site packages\pywin32\u system32

对我来说,它将我的pywin32从227版降级到224版。只需在管理员模式下的任意shell上键入以下命令:

pip install --upgrade pywin32==224

对我来说,它的工作原理是将pywin32从227版降级到224版。只需在管理员模式下的任意shell上键入以下命令:

pip install --upgrade pywin32==224

Lib\site packages\pywin32\u system32
不在要搜索DLL(路径环境变量)的目录列表中时,会发生这种情况

pywin32(或其依赖项之一)在运行时将此路径添加到path变量。如果此操作失败,或者在pywin32设置路径后另一个组件正在重写该路径,您将收到给定的错误(ImportError:导入Win32 API时DLL加载失败)

在启动Python之前,可以尝试在shell中扩展PATH变量

在Windows上:

set PATH=c:\...\Lib\site-packages\pywin32_system32;%PATH%
在类Unix系统上:

export PATH=c:\...\Lib\site-packages\pywin32_system32:$PATH
如果这不起作用,那么该路径可能在运行时被Python程序覆盖。在pywin32用于验证其值之前,将以下行添加到程序中:

import os
print(os.environ["PATH"])
最后,您可以在加载pywin32之前扩展PATH变量:

窗口:

os.environ["PATH"] = r"c:\...\pywin32_system32;" + os.environ["PATH"]
类Unix:

os.environ["PATH"] = r"/.../pywin32_system32:" + os.environ["PATH"]

Lib\site packages\pywin32\u system32
不在要搜索DLL(路径环境变量)的目录列表中时,会发生这种情况

pywin32(或其依赖项之一)在运行时将此路径添加到path变量。如果此操作失败,或者在pywin32设置路径后另一个组件正在重写该路径,您将收到给定的错误(ImportError:导入Win32 API时DLL加载失败)

在启动Python之前,可以尝试在shell中扩展PATH变量

在Windows上:

set PATH=c:\...\Lib\site-packages\pywin32_system32;%PATH%
在类Unix系统上:

export PATH=c:\...\Lib\site-packages\pywin32_system32:$PATH
如果这不起作用,那么该路径可能在运行时被Python程序覆盖。在pywin32用于验证其值之前,将以下行添加到程序中:

import os
print(os.environ["PATH"])
最后,您可以在加载pywin32之前扩展PATH变量:

窗口:

os.environ["PATH"] = r"c:\...\pywin32_system32;" + os.environ["PATH"]
类Unix:

os.environ["PATH"] = r"/.../pywin32_system32:" + os.environ["PATH"]

根据pywin32 github,您必须运行

pip install pywin32
python path\to\python\Scripts\pywin32_postinstall.py -install
在那之后,你必须跑

pip install pywin32
python path\to\python\Scripts\pywin32_postinstall.py -install

摘自。为我工作

根据pywin32 github,您必须运行

pip install pywin32
python path\to\python\Scripts\pywin32_postinstall.py -install
在那之后,你必须跑

pip install pywin32
python path\to\python\Scripts\pywin32_postinstall.py -install

摘自。为我工作

当前目录中有两个pythoncom*.dll文件的副本。 Pycharm正在使用目录C:\Windows\System32中的副本:-

C:\Windows\System32 C:\Users\sharandi\AppData\Local\Programs\Python38\Lib\site packages\pywin32\u system32

这些文件是:- pythoncom38.dll-