syntaxe pour compiler un projet pygame grace a Nuitka

pygame,thorpy,nuitka,cython,cxfreeze

a marqué ce sujet comme résolu.
Auteur du sujet

Bonsoir, Je souhaite compiler un projet python important les librairies thorpy et pygame grace a nuitka. Forcement chez moi, ça marche po…

http://nuitka.net/doc/user-manual.html#use-cases

le script a compiler est ici: http://thorpy.org/phpBB3/viewtopic.php?f=4&t=1633

Ma question est : quelle commande exacte pour que ça compile correctement ?

Le but final n’est pas la perf, ni la distribution/portabilité , mais de bidouillage. Je veux ensuite éclater le binaire pour en voir le code assembleur. du bidouillage je vous disais…

ps: dois-je faire une architecture de dossiers/sous-dossiers et coller des init.py pour que ça aide ?

Édité par buffalo974

+0 -0

Salut,

Tiens il est rigolo ce projet, je connaissais pas. Quand tu dis que ça ne marche pas, quel est le problème ?

I don’t mind that you think slowly, but I do mind that you are publishing faster. – W. Pauli

+0 -0
Auteur du sujet

soit le fichier fib.py:

 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

from functools import wraps
import datetime

class ContextDecorator():
    # __call__ est une méthode magique appelée quand on utilise () sur un objet
    def __call__(self, f):
        # bon, cette partie là suppose que vous savez comment marche un
        # décorateur, si c'est pas le cas, retournez lire l'article sur S&M
        # linké dans le premier paragraphe
        @wraps(f)
        def decorated(*args, **kwds):
            # notez le with appelé sur soi-même, c'est y pas mignon !
            with self:
                return f(*args, **kwds)
        return decorated

class TimeIt(ContextDecorator):

    def __enter__(self):
        self.start = datetime.datetime.now()
        print(self.start)

    def __exit__(self, type, value, traceback):
        print((datetime.datetime.now() -self.start).total_seconds())

def fib_py(n):
    if n < 2:
        return n
    return fib_py(n-2) + fib_py(n-1)

res = 33

@TimeIt()
def fibcaller(n=res):
    fib_py(n)

fibcaller()

Cela se compile niquel avec la commande : nuitka –recurse-all fib.py Cela s’exécute très bien, au passage un gain de performance de 30%…

Mon script dans le post cidessus, je le baptise scripto.py Ca compile apres emission d’un warning:

nuitka –recurse-all scripto.py

Nuitka:WARNING:scripto.py:19: Cannot find ’pygame’ as relative or absolute import. Nuitka:WARNING:scripto.py:20: Cannot find ’thorpy’ as relative or absolute import.

si je tente de l’executer j’obtiens Traceback (most recent call last): File "/home/moi/Bureau/bidouillages/scripto.py", line 19, in <module> import pygame ImportError: No module named pygame

Il ne trouve pas les lib importés. Si un jour je veux importer plein de lib stierce, je vais quand meme pas toutes aller les dupliquer dans le repertoire courant, donc il faut une combine à base de pythonpath j’imagine.

Édité par buffalo974

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte