python | error | ip | tkinter

Помогите исправить ошибку, делаю что-то на подобии консоли, пишу ip ввожу 8.8.8.8 или люой другой айпи, и выводит ошибку Code:

import tkinter
from tkinter import Tk
from tkinter import *
import os
from click import style
clear = '                                                                                                                        '
root = Tk()
root.geometry("1290x720")
root['bg'] = 'black'
class gg():
    bg = 'black'
    fg = 'green'
version = Label(root, text = 'Version: 1.0.0', bg = 'black', fg = 'green').place(relx=0, rely=0.950)

#str1 = Label(root, text = clear, bg = 'black', fg = 'red').place(relx=0)
#str1 = Label(root, text = st1, bg = 'black', fg = 'red').place(relx=0)
#message.get()

def text():
    cmd = message.get()
    if cmd == 'ip':
        def info():
            import requests 
            import time 
            import json
            srip = ip.get()
            response = requests.get(f'http://ipinfo.io/{ srip }/json' )         
            print(ip)
            user_ip = response.json()[ 'ip' ] 
            user_city = response.json()[ 'city' ]  
            user_region = response.json()[ 'region' ] 
            user_country = response.json()[ 'country' ]  
            user_location = response.json()[ 'loc' ]  
            user_org = response.json()[ 'org' ]  
            user_timezone = response.json()[ 'timezone' ] 
            os.system('clear')
            st1 = '1.' + str(user_ip)
            str1 = Label(root, text = clear, bg = 'black', fg = 'red').place(relx=0)
            str1 = Label(root, text = st1, bg = 'black', fg = 'red').place(relx=0)
        ip = ''
        iplog = Entry(textvariable=ip, width=25, bg = 'white', fg = 'red', relief='flat').place(relx=0, rely = 0.4)
        btnEnterip = Button(text = '[+] Ip ↵', bg = 'black', fg = 'red',command=info, relief='flat').place(relx=0.13, rely = 0.4)
        
logo = Label(root, text = 'Terminal L1meek', bg = 'black', fg = 'red').place(relx=0, rely=0.929)
telegram = Label(root, text = 'Telegram: @L1meek', bg = 'black', fg = 'yellow').place(relx=0.2, rely=0.929)
st1 = '1.'
str1 = Label(root, text = st1, bg = 'black', fg = 'red').place(relx=0)
st2 = '2.'
str2 = Label(root, text = st2, bg = 'black', fg = 'red').place(relx=0, rely=0.03)
st3 = '3.'
str3 = Label(root, text = st3, bg = 'black', fg = 'red').place(relx=0, rely=0.06)
st4 = '4.'
str4 = Label(root, text = st4, bg = 'black', fg = 'red').place(relx=0, rely=0.09)
st5 = '5.'
str5 = Label(root, text = st5, bg = 'black', fg = 'red').place(relx=0, rely=0.12)
st6 = '6.'
str6 = Label(root, text = st6, bg = 'black', fg = 'red').place(relx=0, rely=0.15)
st7 = '7.'
str7 = Label(root, text = st7, bg = 'black', fg = 'red').place(relx=0, rely=0.18)
st8 = '8.'
str8 = Label(root, text = st8, bg = 'black', fg = 'red').place(relx=0, rely=0.21)
st9 = '9.'
str9 = Label(root, text = st9, bg = 'black', fg = 'red').place(relx=0, rely=0.24)
st10 = '10.'
str10 = Label(root, text = st10, bg = 'black', fg = 'red').place(relx=0, rely=0.27)
st11 = '11.'
str11 = Label(root, text = st11, bg = 'black', fg = 'red').place(relx=0, rely=0.30)
st12 = '12.'
str12 = Label(root, text = st12, bg = 'black', fg = 'red').place(relx=0, rely=0.33)

btnEnter = Button(text = '↵', bg = 'black', fg = 'red',command=text, relief='flat').place(relx=0.13, rely = 0.37)
message = StringVar()
cmd = Entry(textvariable=message, width=25, bg = 'white', fg = 'red', relief='flat').place(relx=0, rely = 0.37)
root.bind('Enter', text())
root.mainloop()

Error:

Traceback (most recent call last):
  File "C:\Users\ilyas\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
  File "e:\VSC\pyvsc\pygame\main.py", line 26, in info
    srip = ip.get()
AttributeError: 'str' object has no attribute 'get'

Ответы (1 шт):

Автор решения: 4500zenja

Предполагаю, что Вы объявили ip не как переменную типа StringVar, а как обычную строку, а у последнего типа нет метода get().

С другой стороны, если прописать

ip = StringVar()

По аналогии с message = StringVar(), то данная ошибка должна исчезнуть.

→ Ссылка