Glx*_*xce 50 python winapi pip pywin32 python-3.x
我正在 Python 3.8 中设置一个自动点击器,我需要 win32api 来获取 GetAsyncKeyState 但它总是给我这个错误:
>>> 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.
Run Code Online (Sandbox Code Playgroud)
我使用的是 Windows 10 Home 64x。我已经试过了
pip install pypiwin32
Run Code Online (Sandbox Code Playgroud)
它成功安装但没有任何变化。我也尝试卸载并重新安装python。我也尝试以相同的方式安装 'django' 并且它在我时确实有效import django,所以我认为这只是一个 win32api 问题。
>>> import win32api
Run Code Online (Sandbox Code Playgroud)
我希望输出没有,但实际输出总是那个错误^^
小智 58
如果您在 conda 环境中使用 miniconda。您可以使用 conda 而不是 pip 来安装 pywin32。
这解决了我的问题:
conda install pywin32
Run Code Online (Sandbox Code Playgroud)
小智 49
对于我的情况,安装并重新安装 pywin32 没有帮助。将两个文件从 复制[installation directory of Anaconda]\Lib\site-packages\pywin32_system32到 后C:\Windows\System32,它就可以工作了。
我的环境是 miniconda 中的 python 3.8。这两个文件是pythoncom38.dll和pywintypes38.dll。
Jos*_*osé 29
在管理员命令提示符中运行 Scripts\pywin32_postinstall.py -install
参考:https : //github.com/mhammond/pywin32/issues/1431
编辑:用户@JoyfulPanda 发出警告:
以管理员权限运行此脚本还会将 pythoncom37.dll、pywintypes37.dll(对应于 pywin32 版本)复制到
C:\WINDOWS\system32. 这稍后会在打开(在 Windows 上)“开始菜单 > Anaconda3(64 位)> Anaconda Prompt (a_virtual_env_name)”时导致问题。至少 Anaconda 2019.07 默认安装了 pywin32 223。Pywin32 224 可能工作,但 225-228 导致 Anaconda 出现问题 (2019.07)
Adi*_*ini 27
对我来说,它的工作原理是将我的 pywin32 从版本 227 降级到版本 224。只需在管理员模式下的任何 shell 上键入以下命令:
pip install --upgrade pywin32==224
Run Code Online (Sandbox Code Playgroud)
小智 12
答案在 jupyter notebook github 中。 https://github.com/jupyter/notebook/issues/4980
conda install pywin32为我工作。我使用的是 conda 发行版,而我的虚拟环境使用的是 Python 3.8
当Lib\site-packages\pywin32_system32不在要搜索 DLL(PATH 环境变量)的目录列表中时会发生这种情况。
pywin32(或其依赖项之一)在运行时将此路径添加到 PATH 变量。如果这失败了,或者其他组件在 pywin32 设置后覆盖了 PATH,您将收到给定的错误(ImportError: DLL load failed while importing win32api)。
在启动 Python 之前,您可以尝试在 shell 中扩展 PATH 变量。
在 Windows 上:
set PATH=c:\...\Lib\site-packages\pywin32_system32;%PATH%
Run Code Online (Sandbox Code Playgroud)
在类 Unix 系统上:
export PATH=c:\...\Lib\site-packages\pywin32_system32:$PATH
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,则 PATH 可能在运行时在 Python 程序中被覆盖。在 pywin32 用于验证其值之前,将以下行添加到您的程序中:
import os
print(os.environ["PATH"])
Run Code Online (Sandbox Code Playgroud)
作为最后的手段,您可以在加载 pywin32 之前扩展 PATH 变量:
视窗:
os.environ["PATH"] = r"c:\...\pywin32_system32;" + os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)
类Unix:
os.environ["PATH"] = r"/.../pywin32_system32:" + os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)
小智 6
对于 python 3.8.3,pywin32==225 对我有用,现有的 pywin32==228 已卸载。
所以试试这个
pip install pywin32==225
Run Code Online (Sandbox Code Playgroud)
希望它能解决你的问题
根据 pywin32 github 你必须运行
pip install pywin32
Run Code Online (Sandbox Code Playgroud)
在那之后,你必须运行
python path\to\python\Scripts\pywin32_postinstall.py -install
Run Code Online (Sandbox Code Playgroud)
取自这里。为我工作!
小智 5
截至 2022 年 2 月,降级至版本 303pywin32解决了该问题。
检查你的 pywin32 版本:
pip show pywin32
Run Code Online (Sandbox Code Playgroud)
降级到版本300:
pip install pywin32==300 --upgrade
Run Code Online (Sandbox Code Playgroud)
重启Jupyter
对我有帮助的是
cd C:\ProgramData\Anaconda3\Scripts
python pywin32_postinstall.py -install