Compilation avec Cython impossible

Résolu/Fermé
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 - Modifié le 3 oct. 2018 à 22:09
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 - 4 oct. 2018 à 16:58
Bonjour à tous,

Quand j'essaie de compiler un simple petit programme avec cython j'obtiens ce message d'erreur :





Je ne comprends pas pourquoi cela arrive puisque si je veux que les résultats soient affichés en ligne, je dois entrer précisemment cette commande. Est-ce qu'il existe une autre commande pour faire la même chose ou est ce que je dois faire autre chose pour régler ce problème ?
Merci d'avance pour vos réponses.

Au passage je sais que cython ne "compile" pas à proprement parler c'est juste plus simple à dire comme ça.

3 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
3 oct. 2018 à 22:59
bonjour, merci de partager le texte de ton programme, pas une image du texte.
pourquoi es-tu certain que "je dois entrer précisément cette commande"?
tu n'expliques pas ce que tu souhaites que ton programme fasse.
as-tu essayé en supprimant la dernière ligne du programme?
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
Modifié le 3 oct. 2018 à 23:48
Quand je dis que je suis sûr que je dois rentrer cette commande c'est juste que j'aimerais que les résultats s'affichent en ligne et non l'en en dessous de l'autre. Fondamentalement si cette commande n'est pas là cela n'entravera en rien le fonctionnement de ce dernier mais les valeurs ne seront pas affichés comme je le souhaiterais. Le programme complet est celui-ci :


Le programme doit juste afficher les 20 premiers multiples de 7 et marqué d'une astérisque ceux qui sont également des multiples de 3.

"input("")" est juste là pour que la fenêtre ne se ferme pas directement après l'ouverture
0
Bonsoir.

Tu n'es pas rendu, car une fois le fichier c généré il va falloir le compiler, et tu auras besoin d'inclure le header python.

Bref, ton problème se situe par le fait que tu crées un fichier c pour python 2, or print avec end est pour python 3, il faut donc spécifier ça à cython avec l'option -3

cython -3 fichier.py


Mais tu devrais sans doute t'orienter vers les outils python pour faire ça, comme cfreeze.

Remarque, cela peut être instructif de se servir de cython et sutout d'arriver à compiler la source c en exécutable.
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
3 oct. 2018 à 23:58
En incluant l'option -3 la compilation fonctionne parfaitement, merci.
Pour ce qui est de cx_Freeze j'ai essayé mais je n'arrive pas à le faire fonctionner, à chaque fois j'obtiens un message d'erreur comme quoi le module cx_Freeze n'existe pas.
Normalement si j'ouvre le fichier c obtenu par compilation d'un fichier .py dans visual studio, je devrais pouvoir le compiler avec les outils intégrés à VS non ?
0
jortu > Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018
4 oct. 2018 à 09:35
Pour visual studio, aucune idée s'il installe par défaut un compilateur, et je n'ai absoulment non plus aucune idée si l'installation de python sur windows inclus les bibliothèques de développement, si ce n'est pas le cas, il faudra le faire, car la compilation exigera d'inclure le fichier d'en-tête de python, et je pense que tu vas bien galérer pour faire tout ça, sans compter de filer les bonnes options au compilateur.

Pour cx_freeze, tu devrais quand même te réorienter dessus, ça sera beaucoup moins pénible, au pire montre ce que tu as fait, que ce soit pour l'install que son utilisation, je ne connais pas cet outil, mais ça ne devrait pas être trop difficile à résoudre.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018
4 oct. 2018 à 09:59
Si tu utilises Visual Studio, pourquoi ne pas faire directement du Python dans Visual Studio, sans passer par du C?
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
4 oct. 2018 à 10:39
Si je fais du python dans Visual Studio ça ne devrait rien changer puisque je devrais toujours passer par du C et le recompiler pour en faire un executable non ? A moins qu'il y ai un outil permettant de faire ces deux manips en même temps et éviter de les faire séparemment mais je n'en ai jamais entendu parler ?
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
4 oct. 2018 à 10:35
Déjà quand j'essaie d'installer cx-Freeze à partir de l'invite de commande avec "pip install cx-Freeze" j'obtiens ce message d'erreur :



Sinon il y a moyen de l'installer avec une archive WinRAR mais pendant l'installation on nous demande de modifier une ligne d'un fichier "setup.py" par une autre :



Hors cette fameuse ligne demeure introuvable. Puis même si je trouvais cette ligne je n'ai pas compris où fallait-il entrer les commandes : "setup.py build", "setup.py install" et python3 setup.py build (faut-il les inclurent dans le script python ou dans cmd ce qui me paraitrait plus probable) ?
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
4 oct. 2018 à 11:46
Si j'essaie d'entrer les commandes dans l'invite de commande voilà tout ce que j'obtiens :







Sans toucher à cette ligne introuvable.
0
Il faut toujours prendre les sources d'un programme à partir du site officiel.

Ici en l'occurence :
https://github.com/anthony-tuininga/cx_Freeze

Car rien ne garantit que ce que tu as téléchargé est sûr et que c'est pour ta version de python, la 3.7.

Maintenant teste en suivant ce qui est indiqué :
python -m pip install cx_Freeze --upgrade


L'upgrade permet de mettre à jour tous les modules python.

Si ça ne fonctionne pas, inutile de télécharger le zip, vois alors du côté de visual c++

Car ton erreur est un peu similaire à :
https://bitbucket.org/anthony_tuininga/cx_freeze/issues/187/cx_freeze-434-pip-fails-to-build-install

Page où l'on renvoie le demandeur vers :
https://wiki.python.org/moin/WindowsCompilers#Microsoft_Visual_C.2B-.2B-_14.0_standalone:_Visual_C.2B-.2B-_Build_Tools_2015_.28x86.2C_x64.2C_ARM.29

A toi de vérifier, ta version de visual c++
Et pour ça, n'étant pas un utilisateur de windows, je ne saurais t'aider.
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
4 oct. 2018 à 12:52
Avec votre commande j'obtiens toujours une erreur :



Quand vous dites de voir du côté de visual c++ qu'entendez vous par là ?

Ensuite j'ai essayé de compiler un fichier c à l'aide de gcc et rien n'y fait, encore une erreur :



Devrais-je créer un nouveau sujet pour cela ?
0
C'est ce que je disais, il faut inclure le header python, sur windows, je ne sais pas où c'est.

Et oui, tu devrais demander de l'aide dans le forum C, car il y aura sans doute plus de gens pour t'aider à cette tâche.
0
Prot0.8 Messages postés 46 Date d'inscription samedi 15 juillet 2017 Statut Membre Dernière intervention 5 octobre 2018 1
4 oct. 2018 à 16:58
Ok, je pense que je vais faire un nouveau sujet pour de l'aide sur le header et un autre pour gcc.
Merci beaucoup pour tout les éclaircissements que vous avez pus me donnez.
Je ferme ce sujet.
0