I try to launch Lutris 0.5.13, but program doesn’t starts at all.
Terminal output:
:~$ lutris
Traceback (most recent call last):
File "/usr/games/lutris", line 52, in <module>
from lutris.gui.application import Application # pylint: disable=no-name-in-module
File "/usr/lib/python3/dist-packages/lutris/gui/application.py", line 36, in <module>
from lutris.api import parse_installer_url, get_runners
File "/usr/lib/python3/dist-packages/lutris/api.py", line 14, in <module>
from lutris.util import http, system
File "/usr/lib/python3/dist-packages/lutris/util/http.py", line 14, in <module>
from lutris.util import system
File "/usr/lib/python3/dist-packages/lutris/util/system.py", line 582, in <module>
@lru_cache
File "/usr/lib/python3.6/functools.py", line 477, in lru_cache
raise TypeError('Expected maxsize to be an integer or None')
TypeError: Expected maxsize to be an integer or None
“lutris -d” and “lutris --submit-issue” outputs the same info.
I has changed python 3.6 to alternative python 3.8.16.
Terminal output has changed, but Lutris 0.5.13 still not launching:
:~$ lutris
Traceback (most recent call last):
File "/usr/games/lutris", line 52, in <module>
from lutris.gui.application import Application # pylint: disable=no-name-in-module
File "/usr/lib/python3/dist-packages/lutris/gui/application.py", line 28, in <module>
import gi
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)
How to do that?
python3-cairo and python-cairo has installed with versions 1.16.2-1
Added:
After changing of python3 version to 3.8.16 the Lutris 0.5.12 stopped launching too with the same output which is given above.
if you type python3 -V (that is a capital v) do you get version 3.10.6?
or have you changed your alternative to some other version of python? I had the same issue and remembered I did that for a test and changing it back fixed the problem right away.
I can change the active Python3 version to whatever. But what’s the point if previous versions of Lutris start to give errors and stop running? The problem is clearly in the Lutris 0.5.13 code, not in the active version of Python3.
Gtk-Message: 19:32:19.969: Failed to load module "appmenu-gtk-module"
Traceback (most recent call last):
File "/usr/bin/lutris", line 52, in <module>
from lutris.gui.application import Application # pylint: disable=no-name-in-module
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/lutris/gui/application.py", line 44, in <module>
from lutris.gui.installerwindow import InstallerWindow, InstallationKind
File "/usr/lib/python3.11/site-packages/lutris/gui/installerwindow.py", line 19, in <module>
from lutris.installer import InstallationKind, get_installers, interpreter
File "/usr/lib/python3.11/site-packages/lutris/installer/interpreter.py", line 14, in <module>
from lutris.installer.installer import LutrisInstaller
File "/usr/lib/python3.11/site-packages/lutris/installer/installer.py", line 14, in <module>
from lutris.services import SERVICES
File "/usr/lib/python3.11/site-packages/lutris/services/__init__.py", line 5, in <module>
from lutris.services.amazon import AmazonService
File "/usr/lib/python3.11/site-packages/lutris/services/amazon.py", line 19, in <module>
from lutris.services.base import OnlineService
File "/usr/lib/python3.11/site-packages/lutris/services/base.py", line 17, in <module>
from lutris.gui.views.media_loader import download_media
File "/usr/lib/python3.11/site-packages/lutris/gui/views/media_loader.py", line 4, in <module>
from lutris.gui.widgets.utils import invalidate_media_caches
File "/usr/lib/python3.11/site-packages/lutris/gui/widgets/utils.py", line 5, in <module>
import cairo
ModuleNotFoundError: No module named 'cairo'
Well… if you installed that python 3.8.16 as an alternative, you may not have all the python modules for it.
To get back to a functional Lutris 0.5.12 you probably have to switch back to your distro’s Python 3.6 for your python3.
The problem is not in the Lutris code, the problem is in your distro’s python version. If you install newer ones as alternatives, you’re also going to need all the python modules that are dependencies for Lutris.
Let’s go in order. All versions of Lutris worked for me with Python3 ver. 3.6.9, including Lutris version 0.5.12. What is the need for Lutris in the much newer version of Python3? What did the developers add there that there was no way without it?
Which of the following changes requires Python3 ver. 3.8+ and which dependencies:
Changelog:
Add support for Proton
Add drag and drop on the main window. Dropped files will be matched
No-Intro, Redump and TOSEC checksums.
Add support for ModDB links in installers (moddb python module required)
Added “Missing” sidebar option for games whose directory is missing
Re-style the configuration, preferences, installer and add-games windows
Group configuration options into sections
Added checkbox to stop asking for the launch config for a game
Added checkbox to sort installed games first
Support for launch-configs in shortcuts and the command line
Show platform badges on banners and cover-art
Installing games from setup files can now use different presets (Win98, 3DFX, …)
Add filter field to runner list
Show game count in search bar
Workaround Humble Bundle authentication issues by allowing importing
I’m just going by that error message you had, I don’t know what changes they made that are incompatible with your old python and the changelog wouldn’t tell you either. It’s syntax that doesn’t work anymore.
I’ve simply seen that error before with python and it was because code didn’t work with python 3.7.
Why are you commenting then? I thought the developers responsing here.
Since you decided to be responsible for the developers, then tell me what dependencies (or modules, or whatever) I need to install in addition to Python 3.8.16.
Quite right. The problem is not in the narrow capabilities of Python 3.6.9, but only in the syntax that the developers decided to switch to. Just like another programming language. What’s the point when everything could be done in Python 3.6.9?