我成功地将python替代版本从3.7更新到了3.8,然后我安装了枕头:
$ sudo apt install python3-pil
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-pil is already the newest version (6.1.0-1ubuntu0.2).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
然后:
$ python
Python 3.8.0 (default, Oct 28 2019, 16:14:01)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
我遇到了一些错误。我试图打开图像以便以后检查其大小和格式,因此我想先在pil模块中导入图像子模块:
>>> import PIL.Image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 95, in <module>
from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 95, in <module>
from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
>>>
请问可以帮忙吗?
答案 0 :(得分:0)
如果可能的话,应该避免使用OS级工具安装Python软件包。它针对系统级别的Python,这意味着您的Python代码不受更改语言版本或任何已安装软件包的任何OS更新的支配。这意味着您所有的Python编程都依赖于系统Python,而对于特定项目则没有任何变化。
请改用virtual environment,也称为“ venv”。您可以使用标准库模块venv
从命令行直接创建它们。这是一个简短的演示:
$ python3 -m venv pildemo
$ . pildemo/bin/activate
(pildemo) $ pip install pillow
Collecting pillow
Downloading https://files.pythonhosted.org/packages/3f/b6/6979d88601932b0434854bcdd5cafeb239c4ed8a8c6c86c8363dd194f9a1/Pillow-7.1.1-cp37-cp37m-manylinux1_x86_64.whl (2.1MB)
100% |████████████████████████████████| 2.1MB 537kB/s
Installing collected packages: pillow
Successfully installed pillow-7.1.1
(pildemo) $ python
>>> import PIL.Image
>>> PIL.Image.__version__
'7.1.1'
venv(在我的示例中命名为pildemo
)是一个独立的Python环境,它将完全包含所需的软件包,并且不会受到系统级Python的任何更改的影响。