Reputation: 951
I'm setting up an autoclicker in Python 3.8 and I need win32api for GetAsyncKeyState but it always gives me this error:
>>> 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.
I'm on Windows 10 Home 64x. I've already tried
pip install pypiwin32
And it successfully installs but nothing changes. I tried uninstalling and re-installing python as well. I also tried installing 'django' in the same way and it actually works when I import django
, so I think it's a win32api issue only.
>>> import win32api
I expect the output to be none, but the actual output is always that error ^^
Upvotes: 84
Views: 231022
Reputation: 124
In case this helps someone. I am running python 3.10.15 on my conda environment and default pip install pywin32
was giving me the DLL error, tried other solutions on this thread didn't work either.
Upgrading pywin32 worked pip install --upgrade pywin32==308
As of 11/10/2024
Upvotes: 0
Reputation: 3797
pip install pywin32==304 --upgrade
Worked for me on Python 3.10.x
Upvotes: 1
Reputation:
I managed to copy files from "yourPython"/Lib/site-packages/pywin32_system32, pywintypes310.dll and pythoncom310.dll to the app folder with the exe /win32 and in the app folder with the exe, I also copied the pywintypes311.dll file generated by pyinstaller in the app folder with the exe /win32 to System32
Upvotes: 0
Reputation: 1067
I had the same issue after reinstalling anaconda 3.9 instead of 3.7 and placing inside the former env folder.
I launched the Anaconda Prompt
application then typed in
cd C:\Users\%USERNAME%\anaconda3\Scripts
activate.bat
I suspect it updated the pythoncomXX.dll
and pywintypesXX.dll
used by anaconda.
Upvotes: 0
Reputation: 2051
Maybe a bit late but it could help:
What happens is that you have two versions of pywin32 installed (One in the local enviroment and the other one in the main python installation)
To solve that uninstall both versions with:
conda uninstall pywin32
pip uninstall pywin32
And inside your virtual conda enviroment also execute:
conda uninstall pywin32
or
pip uninstall pywin32
finally in your virtual enviroment / conda enviroment install with pip install pywin32 or conda.
The answers telling that it works with x version is because the version they install are compatible with the pywin32 dlls they have in system32.
Adding a support link: "DLL load failed: The specified procedure could not be found" when importing win32api or win32com
Upvotes: 1
Reputation: 145
Its about venv or virtualenv version problem about pywin32 check version of both of version of pywin32 (pip install pywin32)
than run this command on active venv
pip install --upgrade pywin32==305
Upvotes: 1
Reputation: 425
If you are launching a virtual env from another virutal env. Makes sure to install pywin32 in both envs. Lost way too many time with this....
Upvotes: 0
Reputation: 2420
What helped me was
cd C:\ProgramData\Anaconda3\Scripts
python pywin32_postinstall.py -install
Upvotes: 5
Reputation: 119
You should go into the folder {python folder path}/Lib/site-packages/pywin32_system32
and copy pythoncomXX.dll
and pywintypesXX.dll
to the folder C:/Windows/System32
.
If you are using a virtual environment, then {python folder path}
is the python folder used by the virtual environment, otherwise it is the folder where the global python is located. For example, I use conda to create a virtual environment called Frameless-Window
, and install the package pywin32
in this virtual environment, then the {python folder path}
on my computer should be D:/Anaconda/envs/Frameless-Window
.
You should be very careful when copying the dll to the System32 folder. if there are dlls with the same name in the folder and pywin32 in your other virtual environment may use these two dlls, replacing the original dlls may cause this virtual environment had the same ImportError problem. After testing, I found that the dlls of pywin32 of version 227, 228 and 300 can be replaced with each other, and the dlls of pywin32 of versions 301, 302, 303 and 304 can also be replaced with each other, but if the dll of version 300 is replaced with the dll of version 301, it will raise ImportError.
Upvotes: 0
Reputation: 1275
Yes it works!
C:\ProgramData\Anaconda3>py Scripts\pywin32_postinstall.py -install
Parsed arguments are: Namespace(destination='C:\ProgramData\Anaconda3\Lib\site-packages', install=True, quiet=False, remove=False, silent=False, wait=None) Copied pythoncom38.dll to C:\WINDOWS\system32\pythoncom38.dll Copied pywintypes38.dll to C:\WINDOWS\system32\pywintypes38.dll Registered: Python.Interpreter Registered: Python.Dictionary Registered: Python -> Software\Python\PythonCore\3.8\Help[None]=None -> Software\Python\PythonCore\3.8\Help\Pythonwin Reference[None]='C:\ProgramData\Anaconda3\Lib\site-packages\PyWin32.chm' Registered help file Pythonwin has been registered in context menu Creating directory C:\ProgramData\Anaconda3\Lib\site-packages\win32com\gen_py Can't install shortcuts - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.8' is not a folder The pywin32 extensions were successfully installed.
Upvotes: 3
Reputation: 3259
This happens when Lib\site-packages\pywin32_system32
is not in the list of directories to search for DLL (PATH environment variable).
pywin32 (or one of its dependencies) adds this path at runtime to the PATH variable. If this is failing, or another component is overriding the PATH after it's been set by pywin32, you will get the given error (ImportError: DLL load failed while importing win32api).
You can try to extend the PATH variable in the shell before starting Python.
On Windows:
set PATH=c:\...\Lib\site-packages\pywin32_system32;%PATH%
If that doesn't work, then the PATH maybe overridden within the Python program at runtime. Add the following line to your program just before pywin32 is used to verify its value:
import os
print(os.environ["PATH"])
As a last resort, you can extend the PATH variable before pywin32 is loaded:
Windows:
os.environ["PATH"] = r"c:\...\pywin32_system32;" + os.environ["PATH"]
Unix like:
os.environ["PATH"] = r"/.../pywin32_system32:" + os.environ["PATH"]
Upvotes: 15
Reputation: 155
As of February 2022, downgrading tot version 303 of pywin32
solves the issue.
Check your pywin32 version:
pip show pywin32
Downgrade to version 300:
pip install pywin32==300 --upgrade
Restart Jupyter
Upvotes: 6
Reputation: 1
hi this question i'm solve as below: 1.check directory C:\Windows\System32, is exist these file? pythoncom37.dll pywintypes37.dll or pythoncom36.dll pywintypes36.dll the number is python version .
and then this issue will be solve.
Upvotes: 0
Reputation: 2475
Windows 10, Python 3.8, PyWin32 v.302 using Anaconda
Here is what worked for me
Open an elevated command prompt activate environment
Command Prompt
and click Run as Administratorconda activate [ENVIRONMENT]
Navigate to the environment you installed PyWin32 on, works if pip install or conda install is used
cd C:\Users\[USER]\anaconda3\envs\[ENVIRONMENT]\Scripts
Run the post install script that was added when installing PyWin32
python pywin32_postinstall.py -install
Upvotes: 3
Reputation: 41
You should try some (or all) of my methods:
Run terminal and use this command: conda install pywin32
.
Copying the two files from [installation directory of Anaconda]\Lib\site-packages\pywin32_system32
(there are only 2 files in this folder) and paste to C:\Windows\System32
.
In my case, the two files are pythoncom38.dll
and pywintypes38.dll
(it means my Python version is 3.8).
Downgrading the version of pywin32 to 225 or lower by this command: pip install pywin32==225
.
Upvotes: 4
Reputation: 1
I am a miniconda user. I got this error first after installed some python environment then deleted it. So I reinstalled the jupyter notebook and it replaced some missing files and issue is fixed.
conda install jupyter notebook
Upvotes: -1
Reputation: 325
Solved
I tried uninstalling and reinstalling pywin32
multiple ways, but the problem persisted. The following way solved the problem:
pip install --upgrade jupyter_client
pip install --upgrade pywin32==224 --force-reinstall
Upvotes: 0
Reputation: 107
version 228 works best for me in Windows 10
pip uninstall pywin32
pip install pywin32==228
Upvotes: 2
Reputation: 1353
If you are working in a miniconda on conda environment. You could just install pywin32 using conda instead of pip.
This solved my problem:
conda install pywin32
Upvotes: 103
Reputation: 749
This problem for me occured when recreating venv from requirements.txt. This venv was initially created on Ubuntu Linux and then recreated on Win 10.
I had to clear the environment and install everyrhing again manually. Did the work for me.
Upvotes: 0
Reputation: 81
For python 3.8.3, pywin32==225 worked for me, the existing pywin32==228 was uninstalled.
So try this
pip install pywin32==225
Hope it solves your problem
Upvotes: 8
Reputation: 79
That is Simple. After Many Tries, I Discovered a Solution. Just Type the Following Commands in Windows 10. I am Using Pycharm, Python Version 3.9
Note:- This Works for All Python Versions !!
pip uninstall pywin32
pip install pywin32
That is Simple.
if That Does Not Work, Then Try:-
pip uninstall win32api
pip install win32api
After Trying These Commands, Try the first 2 commands again.
If It is Still Not Coming, Then Comment This Question What the problem is !!
Upvotes: 0
Reputation: 21
I have had this issue with Jupyter in Anaconda. After following all listed advices, without clear understanding what I am doing, nothing worked for me except one thing. I have updated indexes of Anaconda environments and I've got my kernels back. The screenshot
Upvotes: 0
Reputation: 705
For me, it worked by downgrading my pywin32 from version 227 to version 224. Just type the following command on any shell in administrator mode:
pip install --upgrade pywin32==224
Upvotes: 48
Reputation: 341
Jupyter notebook github has the issue mentioned in the question. There are multiple solution proposed.
What worked for me was this answer with additional first step:
Upvotes: 1
Reputation: 217
The answer is in jupyter notebook github. https://github.com/jupyter/notebook/issues/4980
conda install pywin32
worked for me. I am using conda distribution and my virtual env is using Python 3.8
Upvotes: 13
Reputation: 812
For my case, install and reinstall pywin32 doesn't help. After copied the two files from [installation directory of Anaconda]\Lib\site-packages\pywin32_system32
to C:\Windows\System32
, it works.
My environment is python 3.8 in miniconda. The two files are pythoncom38.dll
and pywintypes38.dll
.
Upvotes: 65
Reputation: 1
I downloaded and installed the latest Microsoft Visual C++ 2015-2019 package from (https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads). You may have to restart your machine after installation.
Then from conda command prompt activate your virtual environment and go to the Scripts folder of the virtual environment(>cd "path of venv"/Scripts)
Once you are in the Scripts folder run the following command "python pywin32_postinstall.py -install"
This will install the required dll's to the appropriate folders in the virtual environment.
And that's how I got it to work!
Upvotes: 0
Reputation: 2302
Run Scripts\pywin32_postinstall.py -install in an Admin command prompt
ref: https://github.com/mhammond/pywin32/issues/1431
edit: User @JoyfulPanda gave a warning:
Running this script with admin rights will also copy pythoncom37.dll, pywintypes37.dll (corresponding to the pywin32 version), into
C:\WINDOWS\system32
, which effectively overwrites the corresponding DLL versions from Anaconda already there. This later causes problem when openning (on Windows) "Start Menu > Anaconda3 (64-bit) > Anaconda Prompt (a_virtual_env_name)". At least Anaconda 2019.07 has pywin32 223 installed by default. Pywin32 224 may work, but 225-228 causes problem for Anaconda (2019.07)
Upvotes: 39