SkyTemple / skytemple

GUI Application to edit the ROM of Pokémon Mystery Dungeon Explorers of Sky
GNU General Public License v3.0
194 stars 21 forks source link

Add support for GTK 4.0. #244

Open dvcky opened 3 years ago

dvcky commented 3 years ago

Title says it all. When trying to run the program through a terminal, this is what it logs:

/usr/lib/python3.9/site-packages/skytemple/core/error_handler.py:27: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '4.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk
2021-04-07 23:21:23,018 - system - CRITICAL - Uncaught exception
Traceback (most recent call last):
  File "/usr/bin/skytemple", line 5, in <module>
    from skytemple.main import main
  File "/usr/lib/python3.9/site-packages/skytemple/main.py", line 26, in <module>
    gi.require_version('Gtk', '3.0')
  File "/usr/lib/python3.9/site-packages/gi/__init__.py", line 117, in require_version
    raise ValueError('Namespace %s is already loaded with version %s' %
ValueError: Namespace Gtk is already loaded with version 4.0
theCapypara commented 3 years ago

Did you use the current version from the master branch or 1.1.2? It should be fixed on master.

dvcky commented 3 years ago

I was using the standard pip package, so I wasn't sure if it was completely up-to-date. Sadly though, after building and installing the version from GitHub, I still get an error. A different one this time, but an error nonetheless:

/usr/lib/python3.9/site-packages/skytemple/core/error_handler.py:27: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '4.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk
2021-04-08 08:49:55,780 - system - CRITICAL - Uncaught exception
Traceback (most recent call last):
  File "/usr/bin/skytemple", line 33, in <module>
    sys.exit(load_entry_point('skytemple==1.2.0', 'console_scripts', 'skytemple')())
  File "/usr/bin/skytemple", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.9/importlib/metadata.py", line 77, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/lib/python3.9/site-packages/skytemple/main.py", line 26, in <module>
    gi.require_version('Gtk', '3.0')
  File "/usr/lib/python3.9/site-packages/gi/__init__.py", line 117, in require_version
    raise ValueError('Namespace %s is already loaded with version %s' %
ValueError: Namespace Gtk is already loaded with version 4.0
theCapypara commented 3 years ago

That doesn't seem like it's actually using the version from Github. I fixed the issue a few weeks ago and a new stable release will come out in a while.

dvcky commented 3 years ago

You may be right, but I must be missing something then. I ran an uninstall through pip to make sure i didn't have the pip package (and it looked like I didn't), re-cloned the github repository, built and installed, and the same issue arose. I don't know much about the code if I'm being 100% honest, so it could totally be user fault here.

dvcky commented 3 years ago

As an update, I thought this might have been an issue with some dependency or something and I was using arch, so I tried running the git version on a fresh install of Fedora 34 (which also uses GNOME 40 and Gtk4), and the same issue persists.

dvcky commented 3 years ago

With the newest release, I am no longer getting GTK4 issues, hooray! Sadly though, a new issue has come up:

[dvcky@arch ~]$ skytemple
Faild setting up Python locale.
[Errno 2] No translation file found for domain: 'skytemple'
2021-05-02 20:41:34,337 - skytemple_files.dungeon_data.mappa_bin.item_list - WARNING - MappaItemCategory is deprecated. Use Pmd2DungeonData's item_categories attribute instead. This deprecated class will provide dynamically generated values from the default EU XML configuration.
Segmentation fault (core dumped)

It seems like the software is having issues setting locale? Not sure

theCapypara commented 3 years ago

What distribution are you using?

dvcky commented 3 years ago

Arch with GNOME, everything is up-to-date. If you want specific details for how I installed it, I used the archinstall command, with English and United States for locale options. I did this on a clean install to test, so I installed the python-pip package, then installed skytemple with pip.

theCapypara commented 3 years ago

Hm, very strange. I'm also using Arch. Did you maybe just do a partial system upgrade? Try pacman -Syu.

theCapypara commented 3 years ago

(I'm also running GNOME with GTK 4)

dvcky commented 3 years ago

I just ran pacman -Syu, and while I did have a couple things to update, I rebooted and the same error persists :/

theCapypara commented 3 years ago

I'd recommend reinstalling the Python packages and pygobject for Python.

theCapypara commented 3 years ago

If it helps, here are all packages I currently have installed in the venv for SkyTemple (some may be unrelated):

aiohttp==3.7.3
antlr4-python3-runtime==4.8
appdirs==1.4.4
async-timeout==3.0.1
attrs==20.3.0
cairocffi==1.2.0
CairoSVG==2.5.0
certifi==2020.12.5
cffi==1.14.4
chardet==3.0.4
clevercsv==0.6.6
click==7.1.2
colorama==0.4.4
cPython==0.0.6
crcmod==1.7
cssselect2==0.4.1
Cython==0.29.22
defusedxml==0.6.0
discord.py==1.6.0
-e git+git@github.com:SkyTemple/ExplorerScript.git@48d260fe363b3e5cf5cab2e9371199324dadb5a4#egg=explorerscript
gitdb==4.0.5
gitdb2==4.0.2
GitPython==3.0.8
idna==2.10
importlib-metadata==3.7.3
Jinja2==2.11.3
MarkupSafe==1.1.1
multidict==5.1.0
mysql-connector-python==8.0.23
natsort==7.1.0
ndspy==3.0.0
nest-asyncio==1.4.3
oauthlib==3.1.0
ordered-set==4.0.2
owoify-py==1.0.5
packaging==20.9
pep517==0.6.0
Pillow==7.0.0
protobuf==3.14.0
-e git+git@github.com:SkyTemple/py-desmume.git@90cddc499cebc975884bf41aeb306efad3d84d0b#egg=py_desmume
pycairo==1.20.0
pycparser==2.20
pyenchant==3.2.0
pygal==2.4.0
PyGObject==3.38.0
pygtkspellcheck==4.0.6
pymongo==3.11.3
pyparsing==2.4.7
pypresence==4.1.2
-e git+git@github.com:Parakoopa/python-for-android.git@b3883402bb95aad04a65f0c374787f8a2206772f#egg=python_for_android
python-igraph==0.8.3
pytoml==0.1.21
regex==2020.11.13
requests==2.25.1
requests-oauthlib==1.3.0
semantic-version==2.8.5
setuptools-rust==0.11.6
sh==1.14.1
six==1.15.0
-e git+git@github.com:SkyTemple/skytemple.git@6c89c37b71a84089de9d01615af44ccef82af853#egg=skytemple
-e git+git@github.com:SkyTemple/skytemple-dtef.git@0a1c21eefc733116b91687ffb80bdc3e85e52514#egg=skytemple_dtef
-e git+git@github.com:SkyTemple/skytemple-eventserver.git@819302c91c108b40612270295a2d261c830c44fd#egg=skytemple_eventserver
-e git+git@github.com:SkyTemple/skytemple-files.git@a950929974c109a14182d5cb999f65ae4918aa96#egg=skytemple_files
-e git+git@github.com:SkyTemple/skytemple-icons.git@c7093d541f179b54f17ff1db7dfad0de21389ca3#egg=skytemple_icons
-e git+git@github.com:SkyTemple/skytemple-randomizer.git@d2e4482a9bb53a7cc984813aa733af55ccda80e6#egg=skytemple_randomizer
-e git+git@github.com:SkyTemple/skytemple-rust.git@432faf01a941dc9e7b3b5837348ea5600af7ad5b#egg=skytemple_rust
-e git+git@github.com:SkyTemple/skytemple-ssb-debugger.git@39729d6626ae1d8f2125069b9bcea078aa35725a#egg=skytemple_ssb_debugger
smmap==3.0.5
sortedcollections==1.2.1
sortedcontainers==2.3.0
texttable==1.6.3
-e git+git@github.com:SkyTemple/tilequant.git@242eb469570f126dba65b296ffa2235f10427f59#egg=tilequant
tinycss2==1.1.0
toml==0.10.2
tornado==6.1
typing-extensions==3.7.4.3
urllib3==1.26.3
webencodings==0.5.1
yarl==1.6.3
zipp==3.4.1
dvcky commented 3 years ago

Reinstalled Python and pygobject, same issue sadly. Here's mine:

antlr4-python3-runtime==4.8
anytree==2.8.0
appdirs==1.4.4
Beaker==1.11.0
btrfsutil==5.11.1
CacheControl==0.12.6
cairocffi==1.2.0
CairoSVG==2.5.2
cffi==1.14.5
chardet==4.0.0
click==7.1.2
colorama==0.4.4
contextlib2==0.6.0.post1
crcmod==1.7
cryptography==3.4.7
cssselect2==0.4.1
defusedxml==0.7.1
distlib==0.3.1
distro==1.5.0
dnspython==1.16.0
explorerscript==0.1.1
html5lib==1.1
idna==3.1
lxml==4.6.3
Mako==1.1.4
Markdown==3.3.4
MarkupSafe==1.1.1
meson==0.58.0
msgpack==1.0.2
natsort==7.1.1
ndspy==3.0.0
nest-asyncio==1.5.1
ordered-set==4.0.2
packaging==20.9
pep517==0.10.0
Pillow==8.2.0
ply==3.11
progress==1.5
pwquality==1.4.4
py-desmume==0.0.3.post2
pycairo==1.20.0
pycparser==2.20
pyenchant==3.2.0
pygal==2.4.0
Pygments==2.8.1
PyGObject==3.40.1
pygtkspellcheck==4.0.6
pyOpenSSL==20.0.1
pyparsing==2.4.7
pypresence==4.2.0
python-igraph==0.9.1
requests==2.25.1
resolvelib==0.5.4
retrying==1.3.3
six==1.15.0
skytemple==1.2.0
skytemple-dtef==1.1.2
skytemple-eventserver==1.0.0
skytemple-files==1.2.1
skytemple-icons==1.2.0
skytemple-rust==0.0.1.post0
skytemple-ssb-debugger==1.2.0
sortedcollections==2.1.0
sortedcontainers==2.3.0
team==1.0
texttable==1.6.3
tilequant==0.4.0.post0
tinycss2==1.1.0
toml==0.10.2
urllib3==1.26.4
webencodings==0.5.1