0

PyQRCode [0] を使用して、Python 2.7.6 で PNG 形式の QR を生成しています。

すべての作品を使用してディスクにファイルを書き込もうとすると、次のようになります。

import pyqrcode
from io import BytesIO
qr = pyqrcode.create("my qr string", mode='binary', version=7)
qr.png("myqr.png", scale=4)

しかし、このコードを使用して io ストリームを使用しようとすると:

import pyqrcode
from io import BytesIO
qr = pyqrcode.create("my qr string", mode='binary', version=7)
f=BytesIO()
qr.png(f, scale=4)
f.getvalue()

私は電話に出ますf.getvalue()

Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: I/O operation on closed file.

PyQRCode のドキュメントには、fileパラメーターが書き込み可能なストリームである可能性があると記載されています。

これをデバッグしようとしましたが、ストリームが閉じられている場所が見つからず、ストリームの .close() ステートメントがありません。[1]

[0] https://pypi.python.org/pypi/PyQRCode

[1] http://pythonhosted.org//PyQRCode/_modules/pyqrcode.html#QRCode.png

4

1 に答える 1

1

これは PyQRCode のバグです。これを解決する PR (まだマージされていません) が Github リポジトリにあります。

https://github.com/mnooner256/pyqrcode/pull/6

于 2015-02-05T02:53:24.947 に答える