"Namespace GooCanvas not available" while trying to run desktop client via source

Issue
According to the title, the desktop client wouldn’t run because GooCanvas library is “not” exist, indicated at this mentioned namespace on traceback error (goocalendar need this kind of dependency) but is it already bundled inside the PyGObject library?

I’ve already check this GooCanvas repo, especially PyGoocanvas binding is already “removed” but in their latest git repository they already stop to maintain this kind of library until the new maintainer takes over.

Should I rebuild this library from their source code or is there a better way?

Traceback Error

Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/goocalendar/__init__.py", line 8, in <module>
    gi.require_version('GooCanvas', '3.0')
  File "/usr/lib/python3.11/site-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace GooCanvas not available

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/mnt/h/tryton-dev-env/tryton7.0/tryton/./bin/tryton", line 55, in <module>
    from tryton.client import main
  File "/mnt/h/tryton-dev-env/tryton7.0/tryton/tryton/__init__.py", line 23, in <module>
    import goocalendar  # noqa: F401
    ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/goocalendar/__init__.py", line 10, in <module>
    gi.require_version('GooCanvas', '2.0')
  File "/usr/lib/python3.11/site-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace GooCanvas not available

How to reproduce the issue (note: assume that the trytond server is already running)

  1. Running WSL2 inside folder tryton-dev-env (with Alpine distro as default)
  2. Set the virtual env. (source venv-nix/bin/activate)
  3. Navigate inside tryton/tryton folder
  4. Run the binary directly (./bin/tryton)

Dev. Environment

  • WSL2 (Alpine - Alpine Linux v3.18) @ Windows 11 22H2 22621.2134
  • Python 3.11.6 / pip 23.3.2 / virtualenv 20.25.0
  • Library installed inside venv:
Package                           Version
--------------------------------- ---------------
aeb43                             0.1.0
alabaster                         0.7.16
appdirs                           1.4.4
apyori                            1.1.2
argcomplete                       3.2.2
argon2-cffi                       23.1.0
argon2-cffi-bindings              21.2.0
arrow                             1.3.0
attrs                             23.2.0
Babel                             2.14.0
backports.entry-points-selectable 1.3.0
bcrypt                            4.1.2
beautifulsoup4                    4.12.2
binaryornot                       0.4.4
braintree                         4.26.0
Brotli                            1.1.0
cached-property                   1.5.2
cachetools                        5.3.2
certifi                           2023.11.17
cffi                              1.16.0
chardet                           5.2.0
charset-normalizer                3.3.2
click                             8.1.7
colorama                          0.4.6
cookiecutter                      2.5.0
cryptography                      41.0.7
csb43                             0.9.3
cssselect2                        0.7.0
cx_Freeze                         6.15.13
defusedxml                        0.7.1
distlib                           0.3.8
dnspython                         2.5.0
docutils                          0.20.1
efficient-apriori                 2.0.3
elastic-transport                 8.11.0
elasticsearch                     8.11.1
elementpath                       4.1.5
email-validator                   2.1.0.post1
febelfin-coda                     0.2.0
filelock                          3.13.1
fonttools                         4.47.2
future                            0.18.3
Genshi                            0.7.7
geomet                            1.1.0
gevent                            23.9.1
GooCalendar                       0.8.0
greenlet                          3.0.3
html2text                         2020.1.16
html5lib                          1.1
idna                              3.6
imagesize                         1.4.1
importlib-metadata                7.0.1
iso3166                           2.1.1
isodate                           0.6.1
Jinja2                            3.1.3
ldap3                             2.9.1
Levenshtein                       0.23.0
lxml                              5.1.0
markdown-it-py                    3.0.0
MarkupSafe                        2.1.3
mdurl                             0.1.2
mercurial                         6.4.5
mt940                             0.6.0
numpy                             1.26.3
oauthlib                          3.2.2
ofxparse                          0.21
packaging                         23.2
pandas                            2.1.4
passlib                           1.7.4
patchelf                          0.17.2.1
pgi                               0.0.11.2
phonenumbers                      8.13.27
pillow                            10.2.0
pip                               23.3.2
pkgconfig                         1.5.5
platformdirs                      4.1.0
playsound                         1.3.0
pluggy                            1.4.0
polib                             1.2.0
proteus                           6.7.dev0
psycopg2-binary                   2.9.9
pyactiveresource                  2.2.2
pyasn1                            0.5.1
pycairo                           1.25.1
pycountry                         23.12.11
pycparser                         2.21
pydot                             2.0.0
pydyf                             0.8.0
pygal                             3.0.4
Pygments                          2.17.2
PyGObject                         3.46.0
PyJWT                             2.8.0
pyOpenSSL                         23.3.0
pyparsing                         3.1.1
pypdf                             4.0.1
PyPDF2                            3.0.1
pyphen                            0.14.0
pypng                             0.20220715.0
pyproject-api                     1.6.1
pysaml2                           7.4.2
python-barcode                    0.15.1
python-dateutil                   2.8.2
python-Levenshtein                0.23.0
python-magic                      0.4.27
python-slugify                    8.0.2
python-sql                        1.4.3
python-stdnum                     1.19
pytz                              2023.3.post1
PyYAML                            6.0.1
qrcode                            7.4.2
rapidfuzz                         3.6.1
regex                             2023.12.25
relatorio                         0.10.1
requests                          2.31.0
requests-file                     1.5.1
requests-oauthlib                 1.3.1
requests-toolbelt                 1.0.0
rich                              13.7.0
rnc2rng                           2.6.6
rply                              0.7.8
schwifty                          2024.1.1.post0
setuptools                        69.0.3
ShopifyAPI                        12.3.0
simpleeval                        0.9.13
six                               1.16.0
snowballstemmer                   2.2.0
soupsieve                         2.5
Sphinx                            7.2.6
sphinx-lint                       0.9.1
sphinxcontrib-applehelp           1.0.8
sphinxcontrib-devhelp             1.0.6
sphinxcontrib-htmlhelp            2.0.5
sphinxcontrib-jsmath              1.0.1
sphinxcontrib-qthelp              1.0.7
sphinxcontrib-serializinghtml     1.1.10
SQLAlchemy                        2.0.25
stripe                            7.12.0
text-unidecode                    1.3
tinycss2                          1.2.1
tox                               4.12.1
types-python-dateutil             2.8.19.20240106
typing_extensions                 4.9.0
tzdata                            2023.4
urllib3                           2.1.0
virtualenv                        20.25.0
weasyprint                        60.2
webcolors                         1.13
webencodings                      0.5.1
Werkzeug                          2.3.0
wheel                             0.42.0
wrapt                             1.16.0
xmlschema                         3.0.1
zeep                              4.2.1
zipp                              3.17.0
zope.event                        5.0
zope.interface                    6.1
zopfli                            0.2.3

Usually goocanvas is not packaged with PyGobject. Your OS should have a goocanvas package.