小编j12*_*12y的帖子

Python 3单元测试中的ResourceWarning unclosed套接字

我正在修改一些代码以兼容Python 2Python 3,但在单元测试输出中发现了警告.

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py:601:
    ResourceWarning: unclosed socket.socket fd=4,
    family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6,
    laddr=('1.1.2.3', 65087), raddr=('5.8.13.21', 8080)
Run Code Online (Sandbox Code Playgroud)

一些研究确定这也发生在流行的图书馆,如请求boto3.

我可以忽略警告或完全过滤它.如果是我的服务,我可以connection: close在我的响应(链接)中设置标题.

这是一个展示警告的示例Python 3.6.1:

app.py

import requests

class Service(object):
    def __init__(self):
        self.session = requests.Session()

    def get_info(self):
        uri = 'http://api.stackexchange.com/2.2/info?site=stackoverflow'
        response = self.session.get(uri)
        if response.status_code == 200:
            return response.json()
        else:
            response.raise_for_status()

    def __del__(self):
        self.session.close()

if __name__ == '__main__':
    service = Service()
    print(service.get_info())
Run Code Online (Sandbox Code Playgroud)

test.py

import unittest

class TestService(unittest.TestCase):
    def test_growing(self): …
Run Code Online (Sandbox Code Playgroud)

python sockets python-3.x python-unittest

20
推荐指数
2
解决办法
7651
查看次数

如何在Python中使用HEIC图像文件类型

将图像从iPhone空投到OSX设备时,默认为高效率图像文件(HEIF)格式。我想用Python编辑和修改这些.HEIC文件。

我可以修改手机设置以默认将其另存为JPG,但这并不能真正解决能够使用其他文件类型的问题。我仍然希望能够处理HEIC文件以进行文件转换,提取元数据等。(示例用例-地理编码

枕头

这是尝试读取此类文件时使用Python 3.7和Pillow的结果。

$ ipython
Python 3.7.0 (default, Oct  2 2018, 09:20:07)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from PIL import Image

In [2]: img = Image.open('IMG_2292.HEIC')
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-2-fe47106ce80b> in <module>
----> 1 img = Image.open('IMG_2292.HEIC')

~/.env/py3/lib/python3.7/site-packages/PIL/Image.py in open(fp, mode)
   2685         warnings.warn(message)
   2686     raise IOError("cannot identify image file %r"
-> 2687                   % (filename …
Run Code Online (Sandbox Code Playgroud)

python python-3.x heif heic

8
推荐指数
9
解决办法
4293
查看次数

标签 统计

python ×2

python-3.x ×2

heic ×1

heif ×1

python-unittest ×1

sockets ×1