No module named 'win32api'

Alvaro Morales Solis picture Alvaro Morales Solis · Aug 14, 2014 · Viewed 31.1k times · Source

In Python 3.4 from Anaconda, I created a program and it is giving me and import error each time I run it. Using Spyder.

ImportError: No module named 'win32api'

I already have the pywin32 installed. And I can see the win32api.pyd under C:\Anaconda3\Lib\site-packages\win32

This is the import code on my program:

from tkinter import *
from tkinter import ttk
import tkinter.messagebox
import time
import requests #needs to be installed
import pymysql #needs to be installed
import csv 
import win32com.client #needs to be installed

import datetime

This is the whole error:

File "C:\Anaconda3\lib\site-packages\win32com\__init__.py", line 5, in <module>
import win32api, sys, os

ImportError: No module named 'win32api'

This is the only instance of Python I have installed. I uninstalled everything else and installed only Anaconda.

Searching online I got to something that said that it could be a problem with the PYTHONPATH. But honestly, I have no idea what they are talking about. So any noob help would be really appreciated. I am using Windows 7 by the way.

Thank you

Answer

Oliver picture Oliver · Aug 15, 2014

The installation for pywin32 must have failed, or it is not for same OS bit architecture (say anaconda 64 bit and pywin32 32 bit). I recommend

  1. you uninstall pywin32,
  2. check what bit version of anaconda you are using, then
  3. install pywin32 for same version,
  4. verify that the installer indicates 100% success and there are no errors flagged in the installer's log window (it's rare but something may fail and the installer doesn't know).
  5. Then open a python console and type "import win32com".

If #5 fails to import win32com, then:

  1. try installing a different version of python, for example from python.org
  2. repeat steps 2 to 5 above but for new python instead of anaconda

Could be that anaconda distributors did something to the python interpreter (although I didn't think so), or that some libs aren't registered right (see answer https://stackoverflow.com/a/17061853/869951 for some more things to try).