首页 > 编程问答 >为什么我的 python 程序一直说没有名为“PIL”的模块?

为什么我的 python 程序一直说没有名为“PIL”的模块?

时间:2024-07-21 09:53:42浏览次数:13  
标签:python pyautogui

我正在 python IDLE shell 中工作,由于某种原因 pyautogui.locateOnScreen 将无法工作。 这是我的代码:

from pyautogui import *
import pyscreeze
import pyautogui
import time
import keyboard
import random
import win32api, win32con

while 1:
    if pyautogui.locateOnScreen('Dassault Falcon 7X.png', confidence=0.8) != None:
        print ("I can see it!")
        time.sleep(0.5)
    else:
        print ("Nope nothing there")

由于某种原因,我不断收到错误消息:

File "D:\Python\Lib\site-packages\pyscreeze\__init__.py", line 17, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL'

我尝试安装枕头,但它说它已经安装了。我期待它开始打印“我可以看到它!”或“没有什么。


收到的错误消息“ModuleNotFoundError: No module named 'PIL'”表明的系统上没有安装名为“PIL”的模块。尽管可能已经安装了“Pillow”(它是 PIL 的一个分支,通常用于图像处理),但 PyAutoGUI 依赖于名为“Pillow”的特定模块 PIL

以下是如何解决此问题的方法:

  1. 安装 PIL 模块:

即使已经安装了 Pillow,也请尝试使用 pip 安装 PIL:

bash pip install pillow

  1. 重启的 Python Shell 或 IDE: 有时,在安装新模块后,需要重新启动 Python shell 或 IDE,以便它们可以识别新安装的模块。

  2. 验证安装: 成功安装 PIL 后,通过尝试在 Python shell 中导入它来验证它是否已正确安装:

python from PIL import Image

如果没有错误,则表示 PIL 已成功安装。

安装 PIL 后,的 PyAutoGUI 代码应该可以正常工作,而不会出现任何问题。 如果仍然遇到问题,请确保使用的是最新版本的 PyAutoGUI 和 Pillow。 可以使用以下命令更新它们:

pip install --upgrade pyautogui pillow

标签:python,pyautogui
From: 78774231

相关文章

  • 我在 Python 时间格式化函数中遇到代码问题
    我一直在研究一个Python函数,将给定的秒数转换为可读的时间格式(HH:MM:SS)。该函数对于大多数测试用例都能正常工作,但对于一些特定的输入会失败。这是我编写的函数:defmake_readable(seconds):ifseconds<60:s1=secondsh1,m1=(0,0)return......
  • 《流畅的Python》第二版 第11章
     fromarrayimportarrayimportmathclassVector2d:__match_args__=('x','y')typecode='d'def__init__(self,x,y):self.__x=float(x)self.__y=float(y)@propertydefx(self)......
  • 《流畅的Python》第二版 第12章
       fromarrayimportarrayimportmathimportfunctoolsimportitertoolsimportoperatorimportreprlibclassVector:typecode='d'def__init__(self,components):self._components=array(self.typecode,components)......
  • 如何在Python中给jupyter单元标准输入?
    我正在尝试在接受用户输入的jupyter笔记本上运行一个程序,但我不知道如何让它读取标准输入。例如,如果我使用shift-enter:a=input()print(a)运行代码,则单元格指示它正在运行,但不接受我的输入。我如何让它接受输入?你遇到的问题是Jupyternotebook中的代码单元默认......
  • Python:如何从 csvreader 列表中删除括号和单引号?
    Pythonn00b在这里。尝试使用csvreader从文件导入数组并打印一个值,但它添加了括号和单引号。这是我的代码:importrandomimportcsvwithopen('crimes.csv','r')ascsvfile:crimes=list(csv.reader(csvfile))hello=["Hello","Greetings","Hi&q......
  • Python 中的多行输入,支持空行并在控制台中检查“\n”
    您好,亲爱的社区,在解决某个竞赛任务时出现了问题。我解决了它,但由于输入棘手而无法交付。我在谷歌上搜索并尝试了几种找到的方法,但如果应用于此任务,它们中的每一种都有一些弱点。而且我无法完全重现所应用的输入,因为它嵌入在竞赛界面中;我可能只依赖描述。这就是为什么我......
  • Python Pandas - 读取 CSV 或 Excel
    我允许用户上传CSV或Excel文件。我正在使用pandas读取文件并创建数据框。由于我无法预测用户将上传哪种文件类型,因此我将pd.read_csv()和pd.read_excel()包装在try/except块中。ifform.validate_on_submit():input_filename=secure_filename(form.file.da......
  • 如何在 python 脚本中调用 robocopy 来批量复制多个文件夹?
    我正在尝试在网络驱动器之间移动多个大文件夹(>10Gb、>100个子文件夹、>2000个文件)。我尝试过在python中使用Shutil.copytree命令,它工作得很好,只是由于不同的原因它无法复制一小部分(<1%的文件)。我相信robocopy对我来说是最好的选择,因为我可以创建一个记录传输过......
  • 如何在Python中使用装饰器动态创建类方法?
    我正在开发一个Python项目,我需要在运行时动态地为类创建方法。我想使用装饰器根据一些外部配置将这些方法添加到类中。要求是:装饰器应该从外部配置(例如字典)读取方法定义。装饰器应该动态地将这些方法添加到类中。每个生成的方法都应具有配置中指定的自己唯一的实现。以......
  • python 中的可扩展视频文件完整性验证
    我的目录包含约100万个视频文件,嵌套在100个子目录下。我想编写一个python脚本来验证这些文件没有损坏,然后删除损坏的文件。做到这一点最有效的方法是什么?它运行的机器有64个cpu核心。当然,以下是如何在Python中构建可扩展视频文件完整性验证器的步骤,该验证器可以......