Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adapt to changes in Python 3.10 #14

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

anarcat
Copy link

@anarcat anarcat commented Mar 3, 2023

It looks like the qrencode Python library is currently unusable in Debian bookworm. Here's a simple example:

anarcat@angela:paperbackup$ python3 -c 'import qrencode ; version, size, data = qrencode.encode(b"test")' Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/qrencode/__init__.py", line 47, in encode
    version, size, data = _encode(data, version, level, hint, True)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats anarcat@angela:paperbackup[1]$

According to a casual search on the web, it looks like the extension needs to be recompiled / patched for Python 3.10:

https://stackoverflow.com/a/71019907

Quote:

On 3.10 any module(s) that use the # variant when parsing arguments
need to have a #define PY_SSIZE_T_CLEAN before including Python.h.

I don't actually know what I'm doing here to be real honest, but that fixes the problem on my end.

It looks like the qrencode Python library is currently unusable in
Debian bookworm. Here's a simple example:

anarcat@angela:paperbackup$ python3 -c 'import qrencode ; version, size, data = qrencode.encode(b"test")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/qrencode/__init__.py", line 47, in encode
    version, size, data = _encode(data, version, level, hint, True)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
anarcat@angela:paperbackup[1]$

According to a casual search on the web, it looks like the extension
needs to be recompiled / patched for Python 3.10:

https://stackoverflow.com/a/71019907

Quote:

> On 3.10 any module(s) that use the # variant when parsing arguments
> need to have a #define PY_SSIZE_T_CLEAN before including Python.h.

I don't actually know what I'm doing here to be real honest, but that fixes the problem on my end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant