首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux肉桂错误打开设置(没有名为“PIL”的模块)

Linux肉桂错误打开设置(没有名为“PIL”的模块)
EN

Stack Overflow用户
提问于 2021-10-20 12:24:10
回答 3查看 1.2K关注 0票数 1

由于我将肉桂更新为5.0.6,我无法访问“首选项”下的任何条目,什么都不会发生。当我尝试从CLI打开时,我有以下内容:

代码语言:javascript
复制
#> cinnamon-settings
No module named 'PIL'

我找了很多东西,但没有什么适合我的问题。我知道这是Python和PIL模块或更新模块Pillow的问题,但是没有一个解决方案适合我。

一些信息:

代码语言:javascript
复制
#> python --version
Python 3.8.10

#> /usr/bin/env python
Python 3.8.10 (default, Sep 28 2021, 16:10:42) 

#> pip -V
pip 21.3 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

#> pip show Pillow
Name: Pillow
Version: 8.4.0
Summary: Python Imaging Library (Fork)
Home-page: https://python-pillow.org
Author: Alex Clark (PIL Fork Author)
Author-email: aclark@python-pillow.org
License: HPND
Location: /home/xxx/.local/lib/python3.8/site-packages
Requires: 
Required-by: image, imageio, img2pdf, matplotlib, ocrmypdf, pikepdf, reportlab, scikit-image

你有什么想法吗?

谢谢

编辑:我在肉桂5.0.6号上发现了这个,我想这就是问题所在。

  • cinnamon-settings:从python的模块搜索路径

中删除~/.local和/usr/local

EN

回答 3

Stack Overflow用户

发布于 2022-06-01 20:50:32

下面是类似的问题和解决方案https://forums.linuxmint.com/viewtopic.php?t=364028

在我的例子中,我需要重新安装所有请求的模块。

像这样:

代码语言:javascript
复制
apt-get install --reinstall python3-pil
apt-get reinstall python3-requests
apt-get reinstall python3-six
apt-get reinstall python3-urllib3

现在,它不用在/usr/share/cinnamon/cinnamon-settings/bin/util.py中注释行就可以工作了。

票数 5
EN

Stack Overflow用户

发布于 2022-01-09 16:26:03

在文件/usr/share/cinnamon/cinnamon-settings/bin/util.py中,我注释了第9和第10行:

代码语言:javascript
复制
 if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
 continue

代码语言:javascript
复制
# if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
#    continue
票数 4
EN

Stack Overflow用户

发布于 2021-10-20 12:55:32

我找到了一个解决办法,恢复了5.0.6中的一个变化

在/usr/share/桂皮/肉桂-设置/util.py文件中,我注释了第9和第10行:

代码语言:javascript
复制
#!/usr/bin/python3

def strip_syspath_locals():
    import sys
    import os

    new_path = []
    for path in sys.path:
        if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
            continue
        new_path.append(path)

    sys.path = new_path

代码语言:javascript
复制
#!/usr/bin/python3

def strip_syspath_locals():
    import sys
    import os

    new_path = []
    for path in sys.path:
        # if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
        #    continue
        new_path.append(path)

    sys.path = new_path

这也许不是解决这个问题的最好方法,但它起了作用。

你认为有更好的解决方案吗?还是肉桂中的一个bug?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69645944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档