簡體   English   中英

沒有名為“ PIL”的模塊,但已滿足要求

[英]No module named 'PIL' but requirement Pillow already satisfied

我正在嘗試使用PIL中的圖片,但是當我運行腳本文件時卻說,

追溯(最近一次調用):文件“ script.py”,行12,來自PIL導入Image ModuleNotFoundError:沒有名為“ PIL”的模塊

但是當我使用pip list列出所有模塊時,我可以看到安裝了Pillow 5.0.0。

我已經在尋找解決方案,但大多數都指出要安裝我已經擁有的Pillow! 我究竟做錯了什么?

我有一個腳本文件可以從Internet使用Pillow下載圖像,我嘗試了所有已知的解決方案,但它們都指向一次又一次安裝枕頭。

import sys, os, multiprocessing, urllib, csv
from io import StringIO
from PIL import Image


def ParseData(data_file):
 csvfile = open(data_file, 'r')
 csvreader = csv.reader(csvfile)
 key_url_list = [line[:2] for line in csvreader]
 return key_url_list[1:]  # Chop off header


def DownloadImage(key_url):
 out_dir = sys.argv[2]
 (key, url) = key_url
 filename = os.path.join(out_dir, '%s.jpg' % key)

if os.path.exists(filename):
 print('Image %s already exists. Skipping download.' % filename)
 return

try:
 response = urllib2.urlopen(url)
 image_data = response.read()
except:
 print('Warning: Could not download image %s from %s' % (key, url))
 return

try:
 pil_image = Image.open(StringIO(image_data))
except:
 print('Warning: Failed to parse image %s' % key)
 return

try:
 pil_image_rgb = pil_image.convert('RGB')
except:
 print('Warning: Failed to convert image %s to RGB' % key)
 return

try:
 pil_image_rgb.save(filename, format='JPEG', quality=90)
except:
 print('Warning: Failed to save image %s' % filename)
 return


def Run():
 if len(sys.argv) != 3:
  print('Syntax: %s <data_file.csv> <output_dir/>' % sys.argv[0])
  sys.exit(0)
 (data_file, out_dir) = sys.argv[1:]

if not os.path.exists(out_dir):
 os.mkdir(out_dir)

key_url_list = ParseData(data_file)
pool = multiprocessing.Pool(processes=50)
pool.map(DownloadImage, key_url_list)


if __name__ == '__main__':
 Run()

向我的朋友尋求幫助,因為他是python開發人員! 因此,他說Windows上最新的anaconda不穩定,建議在Linux上使用anaconda。 所以我在Fedora工作站上嘗試過,然后我沒有遇到任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM