楼主非专业 python 开发,今天遇到个完全没头脑的问题,请赐教!.
geoip2.database 模块内一个全局变量 read = geoip2.database.Reader(geoipfile)geoipfile 没影响...这是咋回事啊??😵😵😵... import unittest
from .geoip import location
class Test_lib(unittest.TestCase):
    def test_locations(self):
        ips = ['23.250.80.1', '24.199.128.3', '31.173.152.1', '186.115.160.2']
        adds = locations(ips)
        self.assertEqual(len(adds), 4)
#!/usr/bin/python3
import geoip2.database, logging
geoipfile = "./GeoLite2-City.mmdb"
read = geoip2.database.Reader(geoipfile)
def locations(ips: list[str]) -> list:
    s = location()
    next(s)
    return [s.send(x) for x in ips]
def location() -> list:
    ip = "1.0.0.1"
    while True:
        try:
            response = read.city(ip)
            a = [ip, response.location.longitude, response.location.latitude]
        except Exception as e:
            logging.exception(e)
            a = []
        ip = yield a
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.