IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Déploiement/Installation Python Discussion :

[Python3] cx_freeze PyGobject


Sujet :

Déploiement/Installation Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [Python3] cx_freeze PyGobject
    Bonjour a tous,

    je vais devoir developper pour un projet d'ici peu une application avec une interface graphique. Je comptais utiliser Gtk3 que je maitrise correctement en conjonction avec Python3.
    Je chercherais donc, pour faciliter la distribution, a utiliser cx_freeze de maniere a produire un executable (pour windows notamment, mais tant qu'a faire, je le ferais aussi pour linux).

    J'ai donc fait un petit test...
    Malheureusement, je n'arrive pas a geler des scripts utilisant Gtk3. Jusqu'ici, j'ai compilé mon code en utilisant cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cxfreeze 1.py --include-modules gi
    Mais ça n'a rien donné...
    A la "compilation" j'ai remarqué que le module Gtk (gi.repository.Gtk) semblait ne pas avoir été pris en compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Missing modules:
    ? _dummy_threading imported from dummy_threading
    ? _emx_link imported from os
    ? ce imported from os
    ? doctest imported from heapq
    ? getopt imported from base64, quopri
    ? gi.repository.Gtk imported from __main__
    ? nt imported from os
    ? ntpath imported from os
    ? org.python.core imported from copy
    ? os.path imported from os, pkgutil
    ? os2 imported from os
    ? os2emxpath imported from os
    ? subprocess imported from os
    This is not necessarily a problem - the modules may not be needed on this platform.
    Voila ce que j'obtiens a l'execution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Traceback (most recent call last):
      File "/usr/lib/python3.3/site-packages/cx_Freeze/initscripts/Console3.py", line 27, in <module>
        exec(code, m.__dict__)
      File "1.py", line 5, in <module>
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1565, in _find_and_load
        return _find_and_load_unlocked(name, import_)
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1512, in _find_and_load_unlocked
        _call_with_frames_removed(import_, parent)
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 313, in _call_with_frames_removed
        return f(*args, **kwds)
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1565, in _find_and_load
        return _find_and_load_unlocked(name, import_)
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1532, in _find_and_load_unlocked
        loader.load_module(name)
      File "/usr/lib/python3.3/site-packages/gi/__init__.py", line 27, in <module>
        from ._gi import _API
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1565, in _find_and_load
        return _find_and_load_unlocked(name, import_)
      File "/usr/lib/python3.3/importlib/_bootstrap.py", line 1532, in _find_and_load_unlocked
        loader.load_module(name)
      File "ExtensionLoader_gi__gi.py", line 22, in <module>
      File "ExtensionLoader_gi__gi.py", line 14, in __bootstrap__
    ImportError: could not import gobject (error was: SystemError('initialization of _gobject raised unreported exception',))
    Quelqu'un a une idée pour resoudre cette erreur ?

    Merci d'avance pour votre aide,

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bon, a force j'ai reussi a faire marcher ça sous linux avec ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    ## import ##
    from cx_Freeze import setup, Executable
     
    ## cx_freeze ##
    executables = [
     	Executable("test.py")
    ]
     
    buildOptions = dict(
    	compressed = False,
    	includes = ["gi"],
    	packages = ["gi"]
    )
     
    setup(
    	name = "cx_freeze executable",
    	version = "1.0",
    	description = "python3 + GTK3",
    	options = dict(build_exe = buildOptions),
    	executables = executables
    )
     
    # build with "python3 freeze.py build" or "./freeze.py build"
    Néanmoins, sous windows, j'execute le meme script pour geler mon code et quand j'essaie ensuite de l'executer j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Traceback (most recent call last):
      File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
    7, in <module>
        exec(code, m.__dict__)
      File "test.py", line 5, in <module>
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
    nd_load
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1514, in _find_a
    nd_load_unlocked
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
    th_frames_removed
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
    nd_load
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
    nd_load_unlocked
      File "C:\Python33\lib\site-packages\gi\__init__.py", line 27, in <module>
        from ._gi import _API
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
    nd_load
      File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
    nd_load_unlocked
      File "ExtensionLoader_gi__gi.py", line 22, in <module>
      File "ExtensionLoader_gi__gi.py", line 14, in __bootstrap__
    ImportError: DLL load failed: The specified module could not be found.
    Il me manque des dll certe, mais lesquels ?

Discussions similaires

  1. Installation de pygobject et de cx_freeze
    Par N3mesis98 dans le forum Mac OS X
    Réponses: 0
    Dernier message: 09/04/2014, 21h22
  2. Comment créer une bdd en python3 ?
    Par Petugnia dans le forum Général Python
    Réponses: 4
    Dernier message: 11/09/2009, 09h08
  3. Python3 et MySQL
    Par teramp3 dans le forum Bibliothèques tierces
    Réponses: 5
    Dernier message: 30/06/2009, 17h24
  4. comment agrandir en height un Entry python3
    Par Petugnia dans le forum Tkinter
    Réponses: 0
    Dernier message: 25/05/2009, 09h19
  5. Python3.01a et moi
    Par gilles.goarrin dans le forum Général Python
    Réponses: 2
    Dernier message: 22/01/2009, 21h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo