2017-05-25 12 views
0

私は画像のURLを使用してTkinterの中の画像を表示する方法の多くの例を見てきましたが、これらの例のどれも私のために働いていません、私はこれを実行する場合、すなわち標準のPythonライブラリのみを使ってPython 2.7でTkinterにURLイメージを追加するには?

import urllib 
from Tkinter import * 
import io 
from PIL import Image, ImageTk 


app = Tk() 
app.geometry("1000x800") 

im = None #<-- im is global 

def search(): 
    global im #<-- declar im as global, so that you can write to it 
       # not needed if you only want to read from global variable. 
    tx1get = tx1.get() 
    Label(app, text="You Entered: \"" + tx1get + "\"").grid(row=1, column=0) 
    fd = urllib.urlopen("http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR7,0,214,317_AL_.jpg") 
    imgFile = io.BytesIO(fd.read()) 
    im = ImageTk.PhotoImage(Image.open(imgFile)) 
    image = Label(app, image = im, bg = "blue") 
    image.grid(row=2, column=0) 

tx1=StringVar() 
tf = Entry(app, textvariable=tx1, width="100") 
b1 = Button(app, text="Search", command=search, width="10") 
tf.grid(row=0, column=0) 
b1.grid(row=0, column=1) 

app.mainloop() 

私はエラー「いいえモジュール名PIL」を取得し、このいずれかで:

from io import BytesIO 
import urllib 
import urllib.request 
import tkinter as tk 
from PIL import Image, ImageTk 
root = tk.Tk() 
url = "http://imgs.xkcd.com/comics/python.png" 
with urllib.request.urlopen(url) as u: 
    raw_data = u.read() 
im = Image.open(BytesIO(raw_data)) 
image = ImageTk.PhotoImage(im) 
label = tk.Label(image=image) 
label.pack() 
root.mainloop() 

私は「いいえ、モジュール名の要求は」ほぼすべての例は、とりわけ、PILモジュールを利用していない得るが、私は、Python 2.7は、それらの多くを認識しないので、それらを動作させることはできません。私は評価の一部として画像を表示する必要があり、Tkinterなどのものを読み込むことはできますが、標準のPythonライブラリの外からモジュールを追加することなくファイルを実行する必要があります。

"tkinter"をインポートすることさえできないことにも注意する価値があります。大文字の "T"で始める必要があるので、 "tkinter"という名前のモジュールはないと言います。

だから私の質問は以下のとおりです。

  1. はPILは、追加のソフトウェア/ライブラリをインストールするために私を必要としない、私が使用していますので

  2. は、「T」は動作しませ資本なし「のTkinter」の輸入をいPython 2.7?ご質問にお答えするために

    from io import BytesIO 
    import Tkinter as tk 
    import urllib # not urllib.request 
    from PIL import Image, ImageTk 
    
    root = tk.Tk() 
    url = "http://imgs.xkcd.com/comics/python.png" 
    
    u = urllib.urlopen(url) 
    raw_data = u.read() 
    u.close() 
    
    im = Image.open(BytesIO(raw_data)) 
    image = ImageTk.PhotoImage(im) 
    label = tk.Label(image=image) 
    label.pack() 
    root.mainloop() 
    

    :Windows上のpython 2.7を使用してどのように私はURL

答えて

1

この作品からTkinterのウィンドウ内の画像を表示しないのPython 2.7を使用して

    1. PIL(Python 2.7では標準ではありません)をインストールする必要があります。
    2. はい、TkinterをPython 2.7にインポートする必要があります。 tkinterはPython 3.x用です
    3. 上記のコードを使用できます(PILをインストールしている場合)。

    また、あなたがurllibなくurllib.request

  • を必要とするのPython 2.7では

    1. は、明示的にファイルを開閉する必要があるので、あなたはurllibはでwith....open(x) as fnameを使用することはできませんようです。
  • +0

    フィードバックに感謝いたします。私はそれが割り当てのためにイメージなしでそれをしなければならなくなり、私はライブラリをインストールすることができません。 – user88720

    関連する問題