Support for python 3.9 is urgently required

The topic includes “python 3.9”

Yes, you’re right. Did you try the beta wheels on https://betas.ankiweb.net/#/? They theoretically will work on Python 3.9.

Will try at the evening… Thanks.

Which commit will you recommend?

I was suggesting the whl files on the download site: https://apps.ankiweb.net/downloads/beta/. It says cp38, but that should be a minimum rather than a specific requirement.

What is “cp38”?

I think cp refers to CPython, the standard implementation of Python, which is most likely what you have. 38 is for 3.8 obviously.

I can confirm that Anki compiles successfully with Python 3.9.

1 Like

Thanks, will try

I have run ./run in stable brunch (84dcaa86 (HEAD -> stable, tag: 2.1.35, origin/stable) backport qt5.9 opacity fix).

It returns

$ ./run 
make: Entering directory '/home/dima/devel/python/anki'
make[1]: Entering directory '/home/dima/devel/python/anki/rslib'
make[1]: Nothing to be done for 'develop'.
make[1]: Leaving directory '/home/dima/devel/python/anki/rslib'
make[1]: Entering directory '/home/dima/devel/python/anki/rspy'
make[1]: Nothing to be done for 'develop'.
make[1]: Leaving directory '/home/dima/devel/python/anki/rspy'
make[1]: Entering directory '/home/dima/devel/python/anki/pylib'
protoc --proto_path=../proto --python_out=anki --mypy_out=anki ../proto/backend.proto ../proto/fluent.proto
Writing mypy to backend_pb2.pyi
Writing mypy to fluent_pb2.pyi
perl -i'' -pe 's/from fluent_pb2/from anki.fluent_pb2/' anki/backend_pb2.pyi
perl -i'' -pe 's/import fluent_pb2/import anki.fluent_pb2/' anki/backend_pb2.py
python tools/genbackend.py
Traceback (most recent call last):
  File "/home/dima/devel/python/anki/pylib/tools/genbackend.py", line 6, in <module>
    from anki import backend_pb2 as pb
  File "/home/dima/devel/python/anki/pylib/anki/__init__.py", line 7, in <module>
    from anki.collection import Collection
  File "/home/dima/devel/python/anki/pylib/anki/collection.py", line 15, in <module>
    import anki.find
  File "/home/dima/devel/python/anki/pylib/anki/find.py", line 8, in <module>
    from anki.hooks import *
  File "/home/dima/devel/python/anki/pylib/anki/hooks.py", line 20, in <module>
    from anki.cards import Card
  File "/home/dima/devel/python/anki/pylib/anki/cards.py", line 13, in <module>
    from anki.models import NoteType, Template
  File "/home/dima/devel/python/anki/pylib/anki/models.py", line 15, in <module>
    from anki.rsbackend import NotFoundError, StockNoteType, from_json_bytes, to_json_bytes
  File "/home/dima/devel/python/anki/pylib/anki/rsbackend.py", line 22, in <module>
    import ankirspy  # pytype: disable=import-error
ModuleNotFoundError: No module named 'ankirspy'
make[1]: *** [Makefile:48: .build/py-proto] Error 1
make[1]: Leaving directory '/home/dima/devel/python/anki/pylib'
make: *** [Makefile:94: develop] Error 2
make: Leaving directory '/home/dima/devel/python/anki'

While

$ pip install ankirspy
ERROR: Could not find a version that satisfies the requirement ankirspy (from versions: none)
ERROR: No matching distribution found for ankirspy

Are there any suggestions?

I suggest you try what I suggested above, or show what problems you ran into when trying it.

$ cd anki-2.1.36-linux-amd64/
$ ./bin/anki
Traceback (most recent call last):
  File "runanki", line 3, in <module>
  File "/home/dae/Local/py514/lib/python3.8/site-packages/PyInstaller-4.0.dev0+g2886519-py3.8.egg/PyInstaller/loader/pyimod03_importers.py", line 625, in exec_module
  File "aqt/__init__.py", line 22, in <module>
  File "/home/dae/Local/py514/lib/python3.8/site-packages/PyInstaller-4.0.dev0+g2886519-py3.8.egg/PyInstaller/loader/pyimod03_importers.py", line 625, in exec_module
  File "aqt/qt.py", line 18, in <module>
ImportError: libsystemd.so.0: cannot open shared object file: No such file or directory
[15356] Failed to execute script runanki

That’s the packaged version of Anki, not the whl files I was talking about, which are in the wheels subfolder. You won’t be able to use the packaged version because you’re using a distro that doesn’t have systemd.

I have installed

pip install anki-2.1.36+beta4_5313447c-cp38-abi3-manylinux2014_x86_64.whl
pip install aqt-2.1.36+beta4_5313447c-py3-none-any.whl

But how to start the application?

The way to run it was documented in development.md, but to make it easier, beta 5 will add the ‘anki’ command when you install it. So if you repeat those pip commands with the new beta 5, you can then type ‘anki’ to run it.

Unfortunately, there is no file development.md.

But I will try beta 5

Thanks, it works.
I have only one question.
When next stable release will be issued, where will I find the .whl files for it?

Additionally, I’d like to report the following things, I got the reports about:

$ ~/devel/python/python-envs/anki-2.1.36/bin/anki 
Qt warning: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-dima' 
mpv not found, reverting to mplayer
JS info :0 Autofocus processing was blocked because a document already has a focused element.
Not found: 'favicon.ico'
Not found: 'favicon.ico'
Not found: 'favicon.ico'
Not found: 'favicon.ico'

And also, the icon for sound play is too big. It must not be bigger than a line height.

2.1.36 was already released - please see the docs for install instructions.

You can ignore those warnings.

Sure, but I thought it may be useful for the developers.

And my question about wheels for the stable releases is still open :wink: