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(), то данная ошибка должна исчезнуть.