我正在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: Impossibile trovare il modulo specificato.
我在Windows 10 Home 64x上已经尝试过
pip install pypiwin32
它可以成功安装,但没有任何变化,也尝试卸载并重新安装python。
我还尝试以相同的方式安装'django',并且在我import django
时它实际上可以工作,所以我认为这仅是win32api问题。
>>> import win32api
我希望输出为空,但实际输出始终是该错误^^
[已解决]
首先,您不应该安装“ pypiwin32”,而应该仅安装“ pywin32”(如果之前安装过pypiwin,则为pip install -ignore-installed pywin32
),然后在同一文件夹pywin32_postinstall.py -install
中写入,并且win32api应该可以工作!
答案 0 :(得分:23)
对于我来说,安装并重新安装pywin32并没有帮助。将两个文件从Lib\site-packages\pywin32_system32
复制到C:\Windows\System32
后,它可以工作。
我的环境是miniconda中的python 3.8。这两个文件是pythoncom38.dll
和pywintypes38.dll
。
答案 1 :(得分:12)
答案在 jupyter notebook github 中。 https://github.com/jupyter/notebook/issues/4980
conda install pywin32
为我工作。我使用的是 conda 发行版,而我的虚拟环境使用的是 Python 3.8
答案 2 :(得分:9)
在Admin命令提示符下运行Scripts \ pywin32_postinstall.py -install
ref:https://github.com/mhammond/pywin32/issues/1431
编辑:@JoyfulPanda用户发出了警告:
以管理员权限运行此脚本还将把pythoncom37.dll,pywintypes37.dll(与pywin32版本相对应)复制到
C:\WINDOWS\system32
中,这将有效地覆盖已经存在的Anaconda中的相应DLL版本。稍后在Windows上打开“开始菜单> Anaconda3(64位)> Anaconda提示(a_virtual_env_name)”时,这会引起问题。默认情况下,至少Anaconda 2019.07已安装pywin32 223。 Pywin32 224可以工作,但是225-228导致Anaconda(2019.07)出现问题
答案 3 :(得分:8)
对我来说,它是通过将pywin32从227版本降级到224版本而起作用的。只需在管理员模式下的任何shell上键入以下命令即可:
pip install --upgrade pywin32==224
答案 4 :(得分:5)
当Lib\site-packages\pywin32_system32
不在要搜索DLL(PATH环境变量)的目录列表中时,就会发生这种情况。
pywin32(或其依赖项之一)在运行时将此路径添加到PATH变量。如果失败,或者由pywin32设置后另一个组件覆盖了PATH,您将得到给定的错误(ImportError:导入win32api时DLL加载失败)。
您可以在启动Python之前尝试在Shell中扩展PATH变量。
在Windows上:
set PATH=c:\...\Lib\site-packages\pywin32_system32;%PATH%
在类似Unix的系统上:
export PATH=c:\...\Lib\site-packages\pywin32_system32:$PATH
如果这不起作用,则PATH可能会在运行时在Python程序中被覆盖。在使用pywin32验证其值之前,将以下行添加到程序中:
import os
print(os.environ["PATH"])
作为最后的手段,可以在加载pywin32之前扩展PATH变量:
Windows:
os.environ["PATH"] = r"c:\...\pywin32_system32;" + os.environ["PATH"]
Unix之类的
os.environ["PATH"] = r"/.../pywin32_system32:" + os.environ["PATH"]
答案 5 :(得分:5)
已解决
如果您在conda环境中的miniconda中工作。您可以只使用conda而不是pip安装pywin32。
这解决了我的问题
conda安装pywin32
答案 6 :(得分:3)
根据pywin32 github,您必须运行
pip install pywin32
然后,您必须运行
python path\to\python\Scripts\pywin32_postinstall.py -install
取自here。为我工作!
答案 7 :(得分:2)
对于 python 3.8.3,pywin32==225 对我有用,现有的 pywin32==228 已卸载。
试试这个 --> pip install pywin32==225
希望它能解决您的问题
答案 8 :(得分:1)
pypiwin32
是一个过时的发行版。卸载并安装pywin32
:
pip uninstall pypiwin32
pip install pywin32
答案 9 :(得分:0)
版本 228 在 Windows 10 中最适合我
pip uninstall pywin32
pip install pywin32==228
答案 10 :(得分:0)
我在从 requirements.txt 重新创建 venv 时出现了这个问题。这个 venv 最初是在 Ubuntu Linux 上创建的,然后在 Win 10 上重新创建。
我不得不清除环境并再次手动安装everhing。为我工作。
答案 11 :(得分:0)
我在 Anaconda 中使用 Jupyter 遇到过这个问题。在遵循所有列出的建议之后,在没有清楚地了解我在做什么的情况下,除了一件事外,没有任何东西对我有用。我已经更新了 Anaconda 环境的索引,我的内核也回来了。 The screenshot
答案 12 :(得分:0)
pip install --upgrade pywin32==225
更新后它可以正常工作。
答案 13 :(得分:0)
Jupyter notebook github 有问题中提到的问题。提出了多种解决方案。
对我有用的是 this answer 加上额外的第一步:
答案 14 :(得分:0)
我从以下位置下载并安装了最新的Microsoft Visual C ++ 2015-2019程序包 (https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)。安装后,您可能必须重新启动计算机。
然后从conda命令提示符处激活您的虚拟环境,然后转到虚拟环境的Scripts文件夹(> cd“ venv路径” / Scripts)
在Scripts文件夹中后,运行以下命令 “ python pywin32_postinstall.py -install”
这会将所需的dll安装到虚拟环境中的相应文件夹中。
这就是我让它起作用的方式!
答案 15 :(得分:0)
当前在目录中有pythoncom * .dll文件的两个副本。 Pycharm正在使用目录C:\ Windows \ System32:-
中的副本C:\ Windows \ System32 C:\ Users \ sharandi \ AppData \ Local \ Programs \ Python \ Python38 \ Lib \ site-packages \ pywin32_system32
文件为:- pythoncom38.dll-559 KB pywintypes38.dll-138 KB
答案 16 :(得分:0)
在此评论问题的引用中
此Lib \ site-packages \ pywin32_system32路径在哪里?
转到C目录,用户,您的用户名,anaconda3,库,站点软件包,pywin32_system32。您可以轻松找到。
C:\ Users \ HP \ anaconda3 \ Lib \ site-packages \ pywin32_system32
答案 17 :(得分:-1)
这很简单。经过多次尝试,我找到了解决方案。只需在 Windows 10 中键入以下命令。我使用的是 Pycharm,Python 版本 3.9
注意:- 这适用于所有 Python 版本!!
pip uninstall pywin32
pip install pywin32
这很简单。
如果这不起作用,请尝试:-
pip uninstall win32api
pip install win32api
尝试这些命令后,再次尝试前 2 个命令。
如果还是不来,那就评论这个问题是什么问题!!