我正在使用scipy模块的imread
和imsave
实用程序。我收到以下错误:
没有名为
imsave
的模块。
我做了一点谷歌搜索,并认为错误是由于没有安装PIL / Pillow。我这样做:
sudo pip install Pillow.
我收到以下消息:
要求已经满足:
/usr/local/lib/python2.7/dist-packages
中的枕头。
我正在导入scipy的misc功能以使用imread和imsave功能。
import scipy.misc
import numpy as np
I = np.load('image.npy')
scipy.misc.imsave('test_image.jpg',I) #The error pops up here
J = scipy.misc.imread('test_image.jpg')
此后我重新安装了scipy。我仍然得到名为error的No模块。
编辑1:为了清楚起见,我按照这个link卸载了PIL。然后我卸载了scipy。但是,当我运行sudo apt install python-scipy python-pil
时,它说pil已经是最新的了。但是,它不在路径/usr/local/lib/python2.7/dist-package
中。
编辑2:回答Mark Mikofski的问题: 我在终端使用Python。我从终端运行该文件。
`which python`
给我以下输出
`/home/raghuram/bin/python`.
导入sys并执行您告诉的操作会给出以下输出列表:
/home/raghuram/lib/python2.7
/home/raghuram/lib/python2.7/plat-x86_64-linux-gnu
/home/raghuram/lib/python2.7/lib-tk
/home/raghuram/lib/python2.7/lib-old
/home/raghuram/lib/python2.7/lib-dynload
/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/home/raghuram/local/lib/python2.7/site-packages
/home/raghuram/lib/python2.7/site-packages
Scipy的版本是0.19.0
答案 0 :(得分:1)
欢迎使用StackOverflow!感谢您提出问题,希望您能找到答案。以下是asking questions from the StackOverflow help center的一些链接:
根据您的回答,您似乎没有在/usr/lib/python2.7
中使用系统Python,并且使用--prefix
installation scheme将您的软件包安装到/home/raghuram
和/home/raghuram/local/
。< / p>
不幸的是,如果获得--install-option
,pip将不会使用轮子,因此您必须先安装BLAS。
$ sudo apt install gfortran libblas-dev liblapack-dev libatlas-dev
然后尝试使用--install-option
with pip传递--prefix
选项进行安装。
$ pip install --install-option="--prefix=/home/raghuram/" numpy scipy pillow
另一个可能更容易的选择是查看你的python解释器认为站点包应该去哪里。为此,import site
and call site.getsitepackages()
。如果/home/raghuram
在该列表中,那么您可以使用-m
选项从Python调用pip作为模块。
$ python -m pip install numpy scipy pillow
最后,如果所有其他方法都失败了,你可以退回到distutils,但这很棘手,因为你无法混合scipy / numpy BLAS依赖项。它们只能是ATLAS,OpenBLAS,MKL等,而不是混合物。要查看您的使用情况,请先import scipy numpy
,然后致电numpy.show_configs()
和scipy.show_configs()
。从这里开始变得更加棘手,因为你需要编辑setup.cfg
告诉你BLAS所在的numpy / scipy,所以让我们假设你可以删除这两个并从头开始。首先从发行版的repo中安装依赖项;我认为默认情况下它们总是用ATLAS构建。
$ sudo apt install gfortran libblas-dev liblapack-dev libatlas-dev
然后从PyPI下载numpy和scipy zip文件并解压缩。对于每个您需要输入解压缩的文件夹并运行:
$ python setup.py install --prefix=~
现在尝试像他们的帮助docstring示例一样使用scipy.misc.imsave
>>> import numpy as np
>>> from scipy.misc import imsave
>>> help(imsave) # view docstring
>>> # then hit q key to return to interpreter
>>> x = np.zeros((255, 255))
>>> x = np.zeros((255, 255), dtype=np.uint8)
>>> x[:] = np.arange(255)
>>> imsave('gradient.png', x)
>>> rgb = np.zeros((255, 255, 3), dtype=np.uint8)
>>> rgb[..., 0] = np.arange(255)
>>> rgb[..., 1] = 55
>>> rgb[..., 2] = 1 - np.arange(255)
>>> imsave('rgb_gradient.png', rgb)
NB :您始终可以搜索Ubuntu packages online或使用apt search
。
PS IMO你应该删除你使用sudo pip
安装到系统python的任何软件包,IMO再也不会这样做了。签入/usr/local/lib/python2.7/dist-packages
。
PPS恕我直言,你应该永远使用sudo
在Linux上安装Python软件包,而不是使用apt
或yum
从发行版的软件存储库安装,使用pip --user
选项安装或使用virtualenv
创建Python虚拟环境。请参阅my AskUbuntu answer。
答案 1 :(得分:1)
尝试通过以下方式通过Pillow
安装conda
:
conda install Pillow