安装mahotas后无法找到freeimage
你好,我是Python的新手,正在学习Python图像教程。
我按照教程安装了相关的包,运行下面的代码没有任何错误:
import numpy
import scipy
import pylab
import pymorph
import mahotas
from scipy import ndimage
但是当我尝试读取一张图片时:
image = mahotas.imread('picture_file.jpg')
我遇到了这个问题:
image = mahotas.imread('image_file.jpg')
回溯(最近的调用在最前面):
文件 "", 第 1 行, 在
文件 "/usr/local/lib/python2.6/dist-packages/mahotas-0.6.4-py2.6-linux-i686.egg/mahotas/init.py", 第 68 行, 在 imread
抛出 ImportError('mahotas.imread 依赖于 freeimage. 找不到它. 错误是: %s' % e)
ImportError: mahotas.imread 依赖于 freeimage. 找不到它. 错误是: mahotas.freeimage: 在以下目录中找不到 libFreeImage:
'/usr/local/lib/python2.6/dist-packages/mahotas-0.6.4-py2.6-linux-i686.egg/mahotas', '/lib', '/usr/lib', '/usr/local/lib', '/opt/local/lib'
我尝试安装FreeImagePy,并且可以正常导入,但这并没有解决问题。我还尝试使用sys包添加到Python路径,但也没有帮助。
补充说明:我应该提到,除了pymorph和mahotas之外,其他所有包都是在我的Linux系统上通过'*sudo apt-get install package_name*'安装的,而pymorph和mahotas是通过下载后执行'sudo python setup.py install'安装的。
1 个回答
关于mahotas的最新版本的说明
Mahotas本身并没有读取图像的功能。imread其实是一个包装器,它依赖于三种后端之一:
- mahotas-imread(也就是 https://pypi.python.org/pypi/imread)
- FreeImage
- matplotlib(只支持PNG和JPEG格式)
所以,你需要安装上面提到的其中一个包。如果你在使用Ubuntu,可以按照下面的说明来安装FreeImage。
如果你是在Windows上运行,建议你试试 Christoph Gohlke的包。
原始回答(针对旧版本的mahotas)
你需要安装freeimage才能使用 mahotas.imread
(其他功能其实不需要它也能正常工作,它是一个可选的依赖项)。这不是一个Python包,而是一个普通的库。
我不知道你用的是什么系统,但可以试着找找freeimage包。在debian/ubuntu上,你可以直接执行:
sudo apt-get install libfreeimage3
这样你就会在 /usr/lib
或类似的地方找到一个 libfreeimage.so
文件,然后一切就能正常工作了。