新手,一个简短的Pyhton程序,报错。哪位老司机能解决?

simon_gong simon_gong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有请各位老司机指教!

1.程序功能:“根据用户输入的IP地址,自动查询IP所对应的城市和国家。”

2.程序代码:
class FindLocation(object):
def __init__(self):
self.gi = pygeoip.GeoIP("./GeoLiteCity.dat")
self.root = tkinter.Tk()
self.root.title("全球定位IP位置(离线版)")
self.ip_input = tkinter.Entry(self.root, width=30)
self.display_info = tkinter.Listbox(self.root, width=50)
self.result_button = tkinter.Button(self.root, command=self.find_position, text="查询")


def gui_arrange(self):
self.ip_input.pack()
self.display_info.pack()
self.result_button.pack()

def find_position(self):
self.ip_addr = self.ip_input
aim = self.gi.record_by_name(self.ip_addr)
try:
city = aim["city"]
country = aim["country_name"]
region_code = aim["region_code"]
longitude = aim["longitude"]
latitude = aim["latitude"]
except:
pass

the_ip_info = ["所在纬度:"+str(latitude), "所在经度:"+str(longitude), "地域代号:"+str(region_code), "所在城市:"+str(city), "所在国家地区:"+str(country), "需要查询的ip:"+str(self.ip_addr)]

for item in range(10):
self.display_info.insert(0, "")

for item in the_ip_info:
self.display_info.insert(0, item)

return the_ip_info

def main():
FL = FindLocation()
FL.gui_arrange()
tkinter.mainloop()
pass


if __name__ == "__main__":
main()





3.程序报错:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "D:/codeing python3/gdal t.py", line 24, in find_position
aim = self.gi.record_by_name(self.ip_addr)
File "C:\ProgramData\Anaconda3\lib\site-packages\pygeoip\__init__.py", line 561, in record_by_name
addr = self._gethostbyname(hostname)
File "C:\ProgramData\Anaconda3\lib\site-packages\pygeoip\__init__.py", line 394, in _gethostbyname
return socket.gethostbyname(hostname)
TypeError: gethostbyname() argument 1 must be str, bytes or bytearray, not Entry

4.请问老司机2个问题:
(1)出错是什么问题?
(2)请直接帮修改一下。
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
simon_gong
脚本语言 37,737 成员 34,208 内容