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

Python Discussion :

Message erreur conversion Cython


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Message erreur conversion Cython
    Bonjour,

    Je tente d'accélérer l'exécution de mon code en le convertissant en Cython.

    Or, j'obtiens un message d'erreur dans le terminal au moment de convertir mon fichier pyx
    en l'occurence ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: unknown file type '' (from 'progprincipal')
    S'agit-il d'une difficulté liée à mes déclarations de string vide du genre x ='' ?

    Quelqu'un aurait une idée ?
    Merci à tous.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par ceststef Voir le message
    Quelqu'un aurait une idée ?
    Sans un code minimaliste reproduisant le souci, difficile à dire. Cela pourrait effectivement provenir de tes strings vides, si par exemple ton code était copié+collé depuis un tutoriel type pdf dans lequel les caractère "quote simple" ne serait pas représenté par un ' classique mais par un caractère un peu plus "habillé" mais qui n'est pas un caractère reconnu par Python...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Invité
    Invité(e)
    Par défaut Salut
    Bonsoir.

    Merci pour la réponse.

    Mon code n'est pas un copier-coller. Il s'agit de mon programme perso que je mène depuis un moment.
    Donc il n'y a pas d'erreur se rapportant à ce type de manipulation.

    En fait, le fichier que je nomme 'progprincipal' fait plus d'une ligne (20 000) alors difficile, selon moi, d'identifier d'où vient le soucis
    car le retour d'erreur ne me livre pas plus d'information que ce que je vous ai indiquée.

    Ce qui me paraissait étonnant, si cette hypothèse se révèle juste, c'est que Cython formerait une erreur se rapportant à la désignation d'un variable qui, sous python, peut valablement être faite sous la forme:

    x =""

    L'erreur vient nécessairement de l'homme donc je n'arrive pas identifier où je me plante. Il y a quelque chose qui m'échappe.

    La nuit porte conseille ... ou la communauté !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 718
    Par défaut
    Citation Envoyé par ceststef Voir le message
    En fait, le fichier que je nomme 'progprincipal' fait plus d'une ligne (20 000) alors difficile, selon moi, d'identifier d'où vient le soucis
    car le retour d'erreur ne me livre pas plus d'information que ce que je vous ai indiquée.
    Quand on ne sait pas d'où vient l'erreur, on peut essayer de mettre des lignes en commentaire pour voir si elle est toujours là. Et faire une sorte de recherche dichotomique pour la cerner plus précisément.
    Mais c'est pour les cas désespérés.

    De toutes façons, sans code pour reproduire, les idées sont à chercher dans les articles glanés sur le Web qui parlent de problème similaire. C'est aussi laborieux mais ça permet de mieux saisir les composants qui sont concernés et peut être donner des idées sur quoi chercher.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Avec aussi peu d'infos, il est difficile de trouver une solution.

    En cherchant sur le web avec "cython error: unknown file type ''", on trouve des sites qui parlent de l'erreur mais le plus souvent avec " type '.pyx' ". Cela suggère que l'erreur n'est pas forcément dans le code, mais peut se trouver aussi dans le processus de traitement par cython. Processus dont on ne connait rien pour l'instant: quel méthode a été utilisée? L'erreur peut aussi se trouver dans l'installation elle-même à cause d'un problème de version.

    Quant à gagner du temps d'exécution avec la compilation par cython, attention à un détail: on gagne vraiment du temps lorsque le type des variables python passées au code C ou C++, existe en C ou C++! Sinon, le code compilé devra appeler l'API Python souvent, et le gain de temps ne sera pas présent, et même pourra être moins bon qu'avec le Python pur (ça m'est déjà arrivé).

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 203
    Par défaut
    hello,
    peux-tu nous montrer la commande ou le script python que tu utilises pour "Cythoniser" ton fichier progprincipal ?
    exemple de commande :
    cythonize -b -i progprincipal.pyx
    exemple de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from setuptools import setup
    from Cython.Build import cythonize
     
     
    setup(
        ext_modules=cythonize("progprincipal.pyx"),
    )
    puis lancer :
    python setup_progprincipal.py build_ext --inplace


    houla ! 20000 lignes de code dans un seul fichier : cython risque d'avoir du mal à le digérer. La vocation de cython c'est plutôt d'optimiser des bouts de code dont l'exécution est lente en python. Il aurait été plus sage de découper ton programme en plusieurs morceaux et de ne compiler en cython que les parties lentes. Est-ce qu'il y a des boucles importantes ou des calculs dans ton programme ?


    Dans ce graphique on voit que cython est intéressant surtout pour les boucles et les calculs.
    Nom : benchmark_cython1.png
Affichages : 131
Taille : 983 octets
    Benchmark pour les 4 tests, relativement au temps d'exécution par Python. De gauche à droite : print "Bonjour", lecture de gros fichier, opérations mathématiques en boucle, alignement de séquences. En bleu : Python ; en vert : compilation avec Cython seul sans typage ; en orange : avec spécification des types des variables.
    Ami calmant, J.P

Discussions similaires

  1. Message erreur InterBase
    Par tchaman dans le forum InterBase
    Réponses: 9
    Dernier message: 01/04/2005, 15h50
  2. [g++] message erreur etrange
    Par infotron dans le forum Autres éditeurs
    Réponses: 15
    Dernier message: 19/09/2004, 23h14
  3. [FLASH MX 2004] message erreur de classe
    Par matN59 dans le forum Flash
    Réponses: 3
    Dernier message: 14/06/2004, 08h59
  4. [VB.NET] Erreur conversion de code c=>vb (opendialogfile)
    Par hirochirak dans le forum Windows Forms
    Réponses: 19
    Dernier message: 02/06/2004, 16h31
  5. [Kylix] message erreur à l'ex
    Par JlouisI dans le forum EDI
    Réponses: 5
    Dernier message: 08/03/2003, 17h47

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