我正在使用 Python 3.6.1 运行一些单元测试并获得ResourceWarning
ResourceWarning: unclosed <socket.socket fd=14, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 54897), raddr=('127.0.0.1', 11211)>
代码的端口和区域表示它是memcached
,我使用的是python-memcached
1.5.8。相关代码在这里:
if use_caching:
import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=0)
key = 'descendent-catalog-ids-{0}'.format(str(cat_id))
catalog_ids = mc.get(key)
if catalog_ids is None:
catalog_ids = get_descendent_ids(hierarchy_session)
mc.set(key, catalog_ids)
else:
catalog_ids = get_descendent_ids(hierarchy_session)
我应该以Client
某种方式手动关闭 memcached 实例吗?我在源代码或文档中找不到任何关于手动关闭套接字的参考,所以我认为库会自动处理这个问题......
我没有发现任何类似的问题(只有一个urllib问题),并且 GitHub 中没有任何相关问题,所以我的假设是我遗漏了一些简单的东西。