forked from saitoha/PySixel
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
I am getting this error on a fairly simple script.
import sixel
import io
def main():
with open("box.png", "rb") as img:
f = io.StringIO()
# f = io.BytesIO()
writer = sixel.SixelWriter()
writer.draw(img, output=f)
if __name__ == "__main__":
main()Traceback (most recent call last):
File "/home/myxi/Documents/coding/python/dumps/test.py", line 12, in <module>
main()
File "/home/myxi/Documents/coding/python/dumps/test.py", line 9, in main
writer.draw(img, output=f)
File "/home/myxi/.asdf/installs/python/3.11.8/lib/python3.11/site-packages/sixel/sixel.py", line 69, in draw
self.save_position(output)
File "/home/myxi/.asdf/installs/python/3.11.8/lib/python3.11/site-packages/sixel/sixel.py", line 24, in save_position
if os.isatty(output.fileno()):
^^^^^^^^^^^^^^^
io.UnsupportedOperation: filenoI have tried both StringIO and BytesIO, but the error persists. The script worked fine on my machine when I wrote to sys.stdout for some reason. I did some googling and found out that this can be caused if you run the script in a limited environment of Python as offered by certain IDEs, but I am not running it in such an environment. I run it directly. This is how I run the command:
python test.pyThe funny part is that this worked just fine:
import sixel
import io
def main():
with open("box.png", "rb") as img:
f = io.StringIO()
conv = sixel.converter.SixelConverter(img)
conv.write(f)
if __name__ == "__main__":
main()No errors. But I need the writer because I need to specify the position of the image.
I have tried the first script on Python 3.11.8 and Python 3.12.2. I get this error on both.
myxi :: coding/python/dumps » pip freeze
pillow==10.2.0
sixel==0.2.0myxi :: coding/python/dumps » uname -a
Linux myxi 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Python versions were compiled with gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Metadata
Metadata
Assignees
Labels
No labels