在Win7 64位系统中安装PIL(Python Imaging Library),Python版本为2.6.4

64
我正在尝试安装该库以用于Python。我尝试下载Windows的可执行安装程序,运行后却显示未找到Python安装。然后尝试注册Python(http://effbot.org/zone/python-register.htm),但是脚本显示无法注册(尽管键已显示在我的注册表中)。然后我尝试下载源代码包:我运行setup.py build成功了,但当我运行setup.py install时,它会显示以下内容:
running install
running build
running build_py
running build_ext
building '_imaging' extension
error: Unable to find vcvarsall.bat

我该怎么办?

更新(2014年5月):如一些评论和答案所说,PIL目前已停止维护,现在的方法是使用Pillow(https://pypi.python.org/pypi/Pillow/pip install pillow)。


4
似乎PIL已经不再更新了,请使用Pillow。pip install pillow - Warren P
10个回答

117

我在这里找到了一个可用的win7二进制文件: Python扩展包非官方Windows二进制文件 来自于加州大学欧文分校的Christoph Gohlke。其中包括32位和64位Windows的Python 2.5、2.6、2.7、3.1和3.2版本。

此外,这里还有很多其他编译好的软件包。

一定要先卸载旧版的PIL。

如果您使用的是easy_install: easy_install -mnX pil
然后删除python/Lib/site-packages中的egg文件。

务必删除任何其他失败的尝试。 我曾将_image dll文件移动到Python *.*/DLLs中,因此不得不将其删除。


3
非常感谢这个网站。它在Windows 7下解决了我许多Python问题,对我帮助很大。 - Franziskus Karsunke
12
对你点赞,对这个令人惊叹的代码库维护者加100分。 - kgiannakakis
2
请注意,此存储库中的PIL现已被Pillow取代(似乎仍然可以正常工作,无需更改代码)。 - Rick Westera

29

我刚遇到了同样的问题(使用Python 2.7和适用于这些版本的PIL,但解决方案也适用于2.6),解决方法是将所有的注册表键从以下位置复制:

HKEY_LOCAL_MACHINE\SOFTWARE\Python

为了

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python

对我有用

下面的地址提供了解决方案,所以功劳应归于那里: http://effbot.slinkset.com/items/Adding_Python_Information_to_the_Windows_Registry


4
请执行以下操作:打开注册表编辑器并下载这些文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/。 - Guillaume86
5
如果你安装了64位的Python而PIL是32位的,那么这个方法可以解决PIL安装程序的阻塞问题。然而,这将不能让你使用模块的本地组件。虽然你可以打开文件和一些东西,但因为64位的Python无法加载32位的本地模块,所以你将无法使用该模块。你需要下面答案中提供的64位模块:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil - Ajith Antony
1
对我也起作用,你只需要这个关键字:Python\PythonCore\2.7\InstallPath - Ralph Caraveo
非常好用(至少与PIL一起使用)。 一个简单的方法是导出HKEY_LOCAL_MACHINE\SOFTWARE\python键,然后编辑文件并更改路径,添加\Wow6432Node...然后运行文件。 - Lior

20

在Windows x64上编译PIL似乎有点麻烦。(根据我的经验,在Windows上编译任何东西都有点麻烦。)除了PIL本身,您还需要构建许多依赖项。此外,还可以查看该邮件列表中的这些说明

此信息链接的x64非官方预编译二进制文件,但我自己没有尝试过。如果您不介意下载来自那些稍微可疑的文件上传网站之一的内容,可能值得一试。除此之外......您可以放弃并使用32位Python二进制文件。


在“不靠谱的文件上传网站”上发布的文件实际上是有效的。但是随后出现的问题(与其他库有关)让我认为放弃并使用32位Linux将是最佳选择。尽管如此,您的解决方案解决了当前的问题。 = D - Rafael Almeida
我在Linux 64位上使用PIL(或最近的任何东西)没有遇到任何问题。相对于Windows而言,Linux似乎在x86_64转换方面走得更远,这可能是由于重新编译开源软件的相对容易性以及其在大内存服务器上的普及所致。 - bobince
在这里找到了另一个适用于Py 2.7 + AMD64的版本:http://christianakesson.com/2013/4615 - Warren P
4
最近似乎用PILLOW代替了PIL。 - Warren P
如果你编译的PIL包是一个zip文件(例如http://christianakesson.com/2013/4615中的那个),那么你该如何安装它呢?我将其解压缩,将包含目录重命名为PIL,然后像用户级代码一样处理它(对我来说,就是将其添加到我的Django项目中)。这对我很有效。 - TaiwanGrapefruitTea
尝试使用Anaconda。 - prabhat mishra

3
如果您安装了win64 python,则需要一个win64 PIL。据我所知,官方的PIL下载站点只有win32版本。win32安装程序将无法看到您的64位python安装。
没有任何权限或重新分发都无法解决这个问题。你可以使用win32 python代替(Win64 python本身就是变异体;微软决定在他们的64位世界中C 'long'应该是32位,因此Win64 python中的python 'ints'仅为32位)。
由于在win64中sizeof(long)!= sizeof(ptr),因此移植C扩展可能会出现问题,并且与将它们移植到linux 64不同。例如,似乎Win64 numpy是实验性/损坏的,而linux64 numpy多年来一直很好。我的建议是,如果您使用win64,请使用win32 python。如果您想要64位python,请使用linux。

1

我认为我以前遇到过类似的问题,使用另一个Python库时也是如此。我相信这是一个Windows权限问题。尝试将“用户”添加到你的Python目录中,并给予他们完全访问权限。


尝试过了,但没有成功。也尝试将“Everyone”添加到C:\Python26中,但仍然没有运气。 - Rafael Almeida
你好@prabhatmishra,这个问题已经超过8年了,今天我确实使用的是Anaconda。 - Rafael Almeida

0

http://www.lfd.uci.edu/~gohlke/pythonlibs/

按下 Ctrl+F

输入 Pillow-2.4.0.win-amd64-py3.3.exe

然后点击下载 64 位版本

Pillow是Python图像库PIL的替代品,提供图像处理功能并支持多种文件格式。 注意:使用from PIL import Image而不是import Image。 PIL-1.1.7.win-amd64-py2.5.exe PIL-1.1.7.win32-py2.5.exe Pillow-2.4.0.win-amd64-py2.6.exe Pillow-2.4.0.win-amd64-py2.7.exe Pillow-2.4.0.win-amd64-py3.2.exe Pillow-2.4.0.win-amd64-py3.3.exe Pillow-2.4.0.win-amd64-py3.4.exe Pillow-2.4.0.win32-py2.6.exe Pillow-2.4.0.win32-py2.7.exe Pillow-2.4.0.win32-py3.2.exe Pillow-2.4.0.win32-py3.3.exe Pillow-2.4.0.win32-py3.4.exe


0

在我的32位Windows上刚刚收到了这个错误消息 - 我在这里阅读了FAQ:http://pythonware.com/products/pil/faq.htm,这似乎表明Windows有些问题。再次查看安装页面并下载Python26的Windows可执行文件 # Python Imaging Library 1.1.7 for Python 2.6 (Windows only) - 运行此文件将安装_imaging模块。应该可以解决问题。因此,您不能只运行以下命令来安装Python Imaging Library 1.1.7 Source Kit (all platforms) (November 15, 2009):python setup.py install。



0

我遇到了相同的问题,所以我决定下载源代码包,并按照您上面发帖的方式进行安装...

  1. 下载源代码包
  2. 在该文件夹上打开命令提示符并键入python setup.py build
  3. 然后我键入了 python setup.py install

它完美地工作了!

现在,一些注意事项:当我键入 python setup.py build 时,我发现 Microsoft Visual Studio v9.0 C 编译器正在用于构建所有内容。

因此,可能是您的编译器配置不正确或其他原因所致......

无论如何,这对我有用,谢谢!


0

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