0

因为我将 Cinnamon 更新到 5.0.6,所以我无法访问“首选项”下的任何条目,因此没有任何反应。当我尝试从 CLI 打开时,我有以下内容:

#> cinnamon-settings
No module named 'PIL'

我搜索了很多,但没有适合我的问题。我知道这是 Python 和 PIL 模块或较新的模块 Pillow 的问题,但提供的解决方案都不适合我。

一些信息:


#> 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


你有什么想法 ?

谢谢

编辑:我在 Cinnamon 5.0.6 更改日志上找到了这个,我认为这是问题所在

  • cinnamon-settings:从 python 的模块搜索路径中删除 ~/.local 和 /usr/local
4

2 回答 2

1

我找到了一种解决方法,恢复 5.0.6 中所做的更改

在文件 /usr/share/cinnamon/cinnamon-settings/util.py 我评论了第 9 行和第 10 行:

#!/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

#!/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

这可能不是解决此问题的最佳方法,但它确实有效。

您看到更好的解决方案还是 Cinnamon 中的错误?

于 2021-10-20T12:55:32.500 回答
1

在文件 /usr/share/cinnamon/cinnamon-settings/bin/util.py 我评论了第 9 行和第 10 行:

 if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
 continue

# if path.startswith(("/usr/local", os.path.expanduser("~/.local"))):
#    continue
于 2022-01-09T16:26:03.133 回答