如何卸载Python 2.7中的PIL并改用Pillow?

11

我已经搜索了几个小时,找不到任何信息,所以想在这里问一下。

我的问题与PIL和Pillow有关。由于我正在使用SimpleCV,而它还不支持Python 3,因此需要使用Python 2.7。

当我尝试使用sudo pip uninstall PIL卸载PIL时,它会输出:Cannot uninstall requirement PIL, not installed

这适用于Python 3,允许我使用from PIL import Image。如果我尝试使用import Image,它会出现错误,因为该模块不存在,但是对于Python 2.7(我需要使用的版本),from PIL import Imageimport Image都可以正常使用,这使我相信PIL没有从Python 2.7中卸载。

我的想法是否正确?如果是,我该如何卸载它?还是说问题出在其他地方?

提前感谢您的帮助!

PS:以防万一,我正在使用树莓派。


请查看此链接,以安装pip2.7,然后您可以在终端中输入以下命令[$ pip2.7 install pillow]。 - Rajesh D
2个回答

17

我怀疑你已经成功卸载了PIL,并且实际上安装了Pillow。Pillow是以PIL包名称安装的。这使你可以在不必重写任何代码的情况下将Pillow与PIL交换使用。Pillow只是一个PIL分支。

你可以通过执行以下操作来检查import PIL是否实际加载了Pillow:

import PIL
print PIL.PILLOW_VERSION
如果您已经安装了Pillow,它应该会输出一些版本信息。这里显示的是3.3.1,但我正在使用Python3。如果您没有安装Pillow,而是安装了PIL,则应该会出现错误。 更新: 现在您可能会看到一个警告信息: <stdin>:1: DeprecationWarning: PILLOW_VERSION is deprecated and will be removed in a future release. Use __version__ instead. 在这种情况下,请尝试运行以下命令:
print(__PIL.__version__)

pip --version output: pip 1.5.6 from /usr/lib/python2.7/dist-packages (python2.7)
pip uninstall PIL output: Cannot uninstall requirement PIL, not installed
pip install Pillow output: Requirement already satisfied: Pillow in /usr/local/lib/python2.7/dist-packages
- Conor Egan
@Conor 如果你运行 pip install Pillow 会发生什么? - OptimusCrime
我已编辑了我的先前评论,以显示您建议的所有内容的输出。 - Conor Egan
1
@Conor 啊,等一下。Pillow包被安装为PIL(它们具有相同的命名空间,因此Pillow可以替换PIL而无需重写代码)。这是设计上的考虑。如果您仍然可以执行 from PIL import Image 那就是正确的。 - OptimusCrime
等一下,我刚刚使用Python 2.7运行了这段代码,它可以工作。我非常困惑但也很感激,谢谢! - Conor Egan
2
@Conor 是的。原因是 PIL 是一个非常受欢迎的包,但它已经有一段时间没有维护了,所以有人对其进行了分支。为了避免重写使用该库的所有代码,他们只是采用了命名空间。很高兴你的问题得到了解决 :) - OptimusCrime

0

非常感谢您的帮助。

我仍然使用OSX 10.13.6 High Sierra。不确定这是否是我的问题所在,或者上述内容是否仅适用于Windows,尽管我已在我的Mac上使用pip?

我必须执行以下操作:

brew upgrade # 这大约需要半个小时

brew install Pillow # 这花费了超过2个小时(不确定实际花费多长时间,但我昨晚看着安装程序睡得很晚)。

出现了一些错误,我必须执行以下操作:

rm /usr/local/bin/2to3 brew link --overwrite python@3.9

我还将python链接到python3.9,以便我不必继续输入python3 <filename.py>,即:

ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python

这样我就可以输入python <filename.py>

然后关闭并重新打开终端以使这些更改生效,当我执行brew install时,我正在使用VS Code,因此我也必须关闭并重新打开VS Code。

请查看https://itsmycode.com/python-importerror-no-module-named-pil-solution/

请注意,在我的Mac上,“pip uninstall PIL”失败了,所以我认为它一开始就没有安装,但我已经安装了HomeBrew。

https://pillow.readthedocs.io/en/stable/installation.html

https://brew.sh/

请注意,在完成整个安装过程后,我不得不重新安装Django,即

pip3 install Django


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接