Search code examples
pythonmouseeventpyhook

How to import pyHook on Spyder (Python 3.7)


I'm trying to use pyHook to get my image to change when I click on it with the mouse. But when I run my code, I get an error.

My Code:

from __future__ import print_function
from PIL import Image
import pyHook
import pythoncom

im = Image.open("H:/---------/Images/nature.jpg")


print(im.format, im.size, im.mode)

im.show()

def OnMouseEvent(event):
   im1 = Image.open("H:/----------/Images/nature.jpg").convert("L")

   im1.show()


hm = pyHook.HookManager()
hm.MouseLeft = OnMouseEvent
hm.HookMouse()
pythoncom.PumpMessages()

This is the error:

ModuleNotFoundError: No module named 'pyHook'

Screenshot: My code and the error message


Solution

  • Open up your terminal and type:

    pip3 install pyHook
    

    It is case-sensitive. So type it properly.

    After that, your python environment will have pyHook installed as a module and you will be able to successfully import in your code

    EDIT:

    Try the following steps since you find the above did not work.
    Go to https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
    Check your computer system and download the correct .whl file.
    Open up your computer's terminal and navigate to your .whl file location. Example: cd C:\Users\ycx\Desktop
    Type in: pip3 install pyHook‑1.5.1‑cp37‑cp37m‑win_amd64.whl This part should be your exact filename which you downloaded off the website.