为什么我安装的PIL库只能在python3.6中运行,不能再最新版的Python3.11.2中运行

为什么我安装的PIL库只能在python3.6中运行,不能再最新版的Python3.11.2中运行。有没有能在Python3.11.2中运行的的pillow版本啊?

img

可以尝试打开python3.11所在目录,使用该目录下的pip来下载pillow。目前下载的pillow是在3.6目录下的,不能使用3.11访问。
下载所用的cmd指令为:

[此处填写py3.11目录下的pip的绝对地址] install pillow

如图,将“[此处填写py3.11目录下的pip的绝对地址]”换为py3.11目录下的pip的绝对地址即可。

  • 你可以参考下这篇文章:如何在iOS上运行Python+Pillow(PIL)(一)
  • 除此之外, 这篇博客: Python基础之PIL(pillow)模块实例中的 Python基础之PIL(pillow)模块实例 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • pillow模块内容繁杂,因此使用实例展示内容


    ##1. 安装PIL(windows)
    方式一:打开cmd(管理员模式) — 输入“pip install pillow” — 自动下载安装 ---- 出现 “Successfully installed pillow-5.2.0”即安装成功
    使用pip list可查看是否安装pillow

    C:\Windows\system32>pip list
    DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
    asn1crypto (0.24.0)
    cffi (1.11.5)
    cryptography (2.2.2)
    idna (2.7)
    Pillow (5.2.0)
    pip (9.0.1)
    pycparser (2.18)
    pygame (1.9.3)
    PyMySQL (0.9.2)
    setuptools (28.8.0)
    six (1.11.0)
    

    ##2. 验证码生成实例

    from PIL import Image, ImageDraw, ImageFont
    import random
    
    # 添加字母
    def creatImg(width,height):
        # 偏移量x
        global x
        # 创建新的画布,透明度为完全透明
        img = Image.new("RGBA", (width, height), (0, 0, 0, 0))
        # 创建画笔
        draw = ImageDraw.Draw(img)
        font = ImageFont.truetype("img/code1.ttf", 50)
        # 创建随机字母并添加至列表
        char = chr(random.randint(65, 91))
        codeList.append(char)
        # 将字母随机写入画布中的指定范围内
        draw.text((x, random.randint(10, 15)), char, font=font, fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        # 随机旋转[-10,10]度
        img = img.rotate(random.randint(-10, 10))
        # 下一个字符为偏移量
        x += 50
        return img
    
    # 添加随机点
    def addPoint(img):
        # 获取宽高
        width, height = img.size
        # 随机添加1000个随机颜色的点
        for i in range(1000):
            img.putpixel((random.randint(0, width-1), random.randint(0, height-1)), (random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)))
        return img
    
    # 创建最底层画布
    code = Image.new("RGBA", (200, 100), (255, 255, 255, 255))
    # 获取画布尺寸
    w, h = code.size
    # 创建空列表存放验证字符
    codeList = []
    # 根据x判定字母偏移量,起始位置为0
    x = 0
    # 循环创建随机字符图片并与底层画布合并
    for i in range(4):
        img = creatImg(w, h)
        code = Image.alpha_composite(code, img)
    # 增加随机点
    code = addPoint(code)
    # 展示验证码
    code.show()
    # 输出验证字符列表
    print(codeList)
    

    ##3. 图片鉴黄(简易)

    from PIL import Image
    
    # 打开图片
    img = Image.open("img/wxq.jpg")
    # 将图片模式转化为YCbCr,Y代表亮度,Cb代表蓝色浓度偏移量,Cr代表红色浓度偏移量
    img = img.convert("YCbCr")
    # 获取图像大小
    w, h = img.size
    # 设定皮肤初始值
    skin = 0
    # 遍历图像中每一个像素
    for m in range(w):
        for n in range(h):
            # 获取该像素的YCbCr
            y, cb, cr = img.getpixel((m, n))
            # 根据公式判断是否为裸露的皮肤,如果是则皮肤值+1
            if 77 <= cb <= 127 and 133 <= cr <= 173:
                skin += 1
    # 遍历完成后判定是否皮肤值占总像素的40%以上,如果是则为不健康的图片(〃ノωノ)
    if skin > (w * h) * 0.4:
        print("黄图,禁了!")
    else:
        print("下一个!")
    

    注:本实例根据某论文提供公式判定,但经过实测,如果使用本实例进行鉴黄,自拍照片都有可能被认为是黄图( ̄ω ̄;)