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

assert g_type != TYPE_NONE #2361

Closed
cedk opened this issue Apr 25, 2024 · 15 comments · Fixed by #2375
Closed

assert g_type != TYPE_NONE #2361

cedk opened this issue Apr 25, 2024 · 15 comments · Fixed by #2375

Comments

@cedk
Copy link
Contributor

cedk commented Apr 25, 2024

Building exe with cx_Freeze for tryton does not work on 64 bits. When the executable is launched it raise this error:

...
File ".../lib/python3.11/importlib/__init__.py", lint 126, in import_module
 return _bootstrap._gcd_import(name[level:], package, level)
File ".../lib/python3.11/site-packages/gi/overrides/Pango.py", line 41, in <module>
 FontDescription = override(FontDescription)
File ".../lib/python3.11/site-packages/gi/overrides/__init__.py", line 189, in override
 assert g_type != TYPE_NONE
AssertionError

To Reproduce
Running setup-freeze.py install_exe -d dist under MINGW64 with cx_Freeze-7.0.0
But when run under MINGW32 with cx_Freeze 6.15.10 (last version packaged), the executable works.

Desktop (please complete the following information):

  • Windows 10 Home
  • amd64
  • cx_Freeze 7.0.0
  • Python 3.11.9

Additional context
When running the application directly under MINGW64, it is working.

@marcelotduarte
Copy link
Owner

I hope it's the regression I fixed in #2357 and backported to 7.0 in msys. This version should be released soon.
Still in the queue to be published: https://packages.msys2.org/queue

Please test it when it is published and let me know. If not, give me more details.

@mrichez-saluc
Copy link

mrichez-saluc commented Apr 25, 2024

Got this error with the latest version (7.0.0-2):

running install_exe
running build_exe
Traceback (most recent call last):
  File "C:/msys64/home/adminsaluc/tryton/tryton/setup-freeze.py", line 125, in <module>
    setup(name='tryton',
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/__init__.py", line 65, in setup
    return setuptools.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in
setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in
run_commands
    dist.run_commands()
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in
run_commands
    self.run_command(cmd)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in
run_command
    cmd_obj.run()
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/command/install_exe.py", line 45, i
n run
    self.run_command("build_exe")
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in r
un_command
    self.distribution.run_command(command)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in
run_command
    cmd_obj.run()
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/command/build_exe.py", line 260, in
 run
    freezer: Freezer = Freezer(
                       ^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/freezer.py", line 772, in __init__
    Freezer.__init__(self, *args, **kwargs)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/freezer.py", line 125, in __init__
    self.finder: ModuleFinder = self._get_module_finder()
                                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/freezer.py", line 398, in _get_modu
le_finder
    finder.include_package(name)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 794, in include_pa
ckage
    module = self._import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 693, in _scan_code
    self._scan_code(
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 693, in _scan_code
    self._scan_code(
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 693, in _scan_code
    self._scan_code(
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 470, in _load_modu
le_code
    self._scan_code(module, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 693, in _scan_code
    self._scan_code(
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 655, in _scan_code
    imported_module = self._import_module(
                      ^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 268, in _import_mo
dule
    module = self._internal_import_module(name, deferred_imports)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 355, in _internal_
import_module
    module = self._load_module(
             ^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 422, in _load_modu
le
    self._load_module_code(module, loader, deferred_imports)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/finder.py", line 463, in _load_modu
le_code
    module.hook(self)
  File "C:/msys64/mingw64/lib/python3.11/site-packages/cx_Freeze/hooks/__init__.py", line 605, in lo
ad_subprocess
    module.exclude_names.update(exclude_names)
                                ^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'exclude_names' where it is not associated with a va
lue

@cedk
Copy link
Contributor Author

cedk commented Apr 25, 2024

I hope it's the regression I fixed in #2357 and backported to 7.0 in msys. This version should be released soon. Still in the queue to be published: https://packages.msys2.org/queue

Please test it when it is published and let me know. If not, give me more details.

I tried with last version and #2363 but it still crashes.
Here is a screenshot of the full traceback (sorry I could not copy it):

2024-04-25-232641_1920x1080_scrot

@cedk
Copy link
Contributor Author

cedk commented Apr 25, 2024

I created #2364 as simple example to reproduce the problem.
It fails the same way as the built of tryton client.

@cedk
Copy link
Contributor Author

cedk commented Apr 27, 2024

I could track that the problem appears in version 6.15.12

@cedk
Copy link
Contributor Author

cedk commented Apr 27, 2024

I suspect it is linked to #2144

@marcelotduarte
Copy link
Owner

I'm working on tests for the msys2 version, so it avoids these errors. I ended up discovering other errors with this #2367.
I tested your sample with this version and it worked.
I'm waiting for the pytest-datafiles package to become available and then I'll send a new patch.

@marcelotduarte
Copy link
Owner

msys2/MINGW-packages#20760 merged.

@mrichez-saluc
Copy link

Still the same error with latest mingw package 7.0.0-4 :(

@gbtami
Copy link

gbtami commented Apr 28, 2024

Same for us in pychess/pychess#2119

@marcelotduarte
Copy link
Owner

marcelotduarte commented Apr 28, 2024

As a workaround:
put all required files in lib:
include_files.append((dll_path, os.path.join("lib", dll)))
and added before import gi:

import os
import sys

if hasattr(sys, "frozen"):
    frozen_dir = os.path.dirname(sys.executable)
    os.environ["PATH"] = (
        os.environ["PATH"] + os.pathsep + os.path.join(frozen_dir, "lib")
    )

remmina_teste-w11_192 168 122 244_20240428-214929

@marcelotduarte
Copy link
Owner

You can test the patch in the latest development build (7.1.0.dev9):
pip install --force --no-cache --pre --extra-index-url https://marcelotduarte.github.io/packages/ cx_Freeze
For conda-forge the command is:
conda install -y --no-channel-priority -S -c https://marcelotduarte.github.io/packages/conda cx_Freeze
For msys2, download the file at: https://marcelotduarte.github.io/packages/msys2/ and use it w/ pacman -U

@marcelotduarte
Copy link
Owner

@cedk @gbtami @mrichez-saluc Can you test the patch?

@mrichez-saluc
Copy link

Sorry for the delay. Yeah, it's finally working with your latest patch :-)

@gbtami
Copy link

gbtami commented May 2, 2024

Yes, it works for pychess as well.
Thx for your hard work!

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 a pull request may close this issue.

4 participants