OVH Community, votre nouvel espace communautaire.

Question Python (que le support refuse de répondre)


gg00xiv
02/03/2011, 10h20
J'ai trouvé quelque chose qui devrait en aider certains : Remplacer le code de retour à la ligne CRLF (alias \r\n) par juste LF (\n). Je parle ici de la manière dont est enregistré le fichier .CGI par votre éditeur de fichier .py pas les \n à l'intérieur des print ou autres instructions d'affichage.

Chez moi le fait de laisser les CRLF me renvoyer systématiquement une erreur 500. Apparemment python ne comprends pas ce codage de fin de ligne, sur OVH en tout cas. En ne changant que les CRLF par des LF, mon programme python s'est mis à fonctionner.

Bon courage à tous.

PS : J'utilise net2ftp pour éditer les fichiers de mon site, et dans cet éditeur, on peut choisir le type de retour à la ligne utilisé lors de l'enregistrement du fichier en cours d'édition.

rxra
08/02/2010, 11h05
pas mieux de me coter .... Amnesiak tu as réussi ?

Amnesiak
13/05/2009, 08h19
Bonjour à vous tous,

Je suis dans la même situation. J'ai repris votre script utilisé dans l'exemple (avec le double \n pour le Content-type), pris soin de l'encoder au format UNIX, le nommer en .py, repris le fichier .htaccess avec les 3 lignes, uploadé le tout en mode "passif" et changé les droits en 755 et j'obtiens toujours cette errreur 500. Idem si je le renomme en cgi. Je précise que je suis bien sur un 90Plan, sur lequel python semble bien installé puisque je peux exécuter le script via le shell.

D'autres idées ?

Un grand merci d'avance

Uzume
20/08/2005, 22h54
Nickel

Mais remercions Homer Jay , qui le premier a mis le doigt sur l'erreur.

J'avoue que je ne pense pas très souvent à ces problèmes d'ajouts de fins de lignes etc, puisque comme je te l'ai dit, avec les bloc-notes pas de problème. Puis maintenant avec le Pingouin, tout est impec

Bon alors, bonne pythonisation hé hé hé

Bonne soirée
Mu.

velk
20/08/2005, 22h35
effectivement ca marche merci

c est bien l editeur de python qui posait probleme


mais avec un autre editeur (maguma studio) ca a bien fonctionné

merci de ton aide.

Uzume
20/08/2005, 22h26
Re Velk,

Pour le

Code:
AddType text/x-python py 
AddHandler python-program .py
Tu n'en as pas besoin puisque tes fichiers se terminent par .cgi et non .py : c'est moi qui avait mal lu au début

Code:
Options -Indexes  IncludesNoExec ExecCGI
Normalement, tu n'en as pas besoin non-plus puisque tu n'avais pas de .htaccess avant, qui aurait pu tout perturber.

Donc, ton problème peut venir de l'éditeur. Quand j'étais sur Windows, je tapais tout dans le Bloc-note, et j'ai jamais eu de soucis avec les fins de ligne. Alors, si je peux te donner un conseil, mets toi au Bloc-note , puis si t'es acharné, mets toi à Linux ! Dès qu'on l'a sous la main, on ne peut plus se passer du Pingouin ! Sacré bestiaux

Pour le fichier py.cgi je te le mets là : http://www.anamorphe.com/py.txt
Tu n'auras plus qu'à le renommer en .cgi et à le placer dans le www.

Pour le transfert, comme d'ab' attention aux points suivants :

- Transfert en mode ASCII ;
- Transfert en mode PASSIF (si tu as une jolie interface graphique ftp c'est dans les préférences, si tu transfères en ligne de commande il faut taper « passive » une fois connecté. S'il te répond OFF, tu retapes une fois « passive » ) ;
- CHMOD à 705 ou 755 ;

@+

Mu.

velk
20/08/2005, 10h31
j ai pas de htaccess ,

je le redis pour etre sur que tout le monde a entendu :

j ai pas de htaccess

Vu que je veux tester en cgi , quelque je suis censé mettre dedans ??

sinon pour windows, j utilise soit l editeur python ou alors maguma studio pour le php et j ai jamais eu de probleme d habitude .?


Uzume si t es motivé pour faire une bonne action, je veux bien ton fichier qui marche en piece jointe pour voir si ca vient bien les \r\n

je viens d essayer avec un htacces avec dedans :

Code PHP:
AddType text/x-python py
AddHandler python
-program .py
Options 
-Indexes  IncludesNoExec ExecCGI 

pareil :


en transferant en mode ASCII , pareil aussi

Homer Jay
20/08/2005, 03h20
velk écrivait :
sisi , je suis sous windows et j ai utilisé l editeur IDLE de python
Bon. Donc peut-être qu'il termine les lignes avec '\r\n'; un système Unix n'aimera pas beaucoup voir les '\r' en trop.

j ai pas de linux ici ... mais me dis pas qu il va falloir que je tappe mes scripts sous linux pour faire du python ?
Non, mais il faut prendre soin de changer les fins de ligne lors du transfert. Si j'ai bien compris, configurer sa session FTP en mode texte (commande 'ascii') doit forcer une conversion au vol.

Sinon, je te dirais bien comment faire la conversion à la main sous Unix, mais je ne crois pas que ça t'aiderait tellement.

milo
20/08/2005, 01h20
Boujour,

Peux-être que l'éditeur ide windows ajoute des fins de lignes "à la windows" : CR\LF.

il faut bien remplacer par du unix qui est juste LF.

miLo

Uzume
20/08/2005, 00h32
Hum...
Je suis sûre que tu l'as fait exprès

Bonne soirée

Mu.

Homer Jay
20/08/2005, 00h11
Bonsoir,

Uzume écrivait :
Non, Apache ne se fiche pas du tout du chmod !
Tiens, c'est vrai! Merci pour la correction.

Uzume
19/08/2005, 23h43
Bonsoir à vous,

Homer Jay écrivait :

(Pour le chmod, je pense qu'apache s'en fiche.)
Non, Apache ne se fiche pas du tout du chmod !

Un exemple, avec le script précédemment cité :

http://www.anamorphe.com/py.cgi avec un chmod fixé à 755 : tout se passe bien, le script fonctionne

http://www.anamorphe.com/py-644.cgi avec un chmod fixé à 644 (comme les fichiers classiques) : ERREUR 500

Enfin Homer Jay... l'Indien qui sévit sur mon hébergement est peut-être moins cool que le tien

Toutefois Velk, avant de voir si le problème ne viendrait pas de l'éditeur sous Windows (quelquefois il rajoute de petites saletés dans les fichiers... ), revient quand-même sur ton .htaccess :
As-tu une ligne « Options » dedans, et si se n'est pas indiscret, que contient-elle ?
As-tu essayé d'y rajouter un ExecCGI ?

ex. : Options -Indexes Blablalbla IncludesNoExec ExecCGI

@+

Mu.

velk
19/08/2005, 23h21
sisi , je suis sous windows et j ai utilisé l editeur IDLE de python

j ai pas de linux ici ... mais me dis pas qu il va falloir que je tappe mes scripts sous linux pour faire du python ?

Homer Jay
19/08/2005, 22h56
Bonsoir,

velk écrivait :
j ai testé avec le bash mais pareil , erreur 500..

je suis sur un 240plan ..?

pas non plus de bidouille de htaccess en vue

mon chmod est bien a 755 egalement
Je pense à un truc: tu n'as pas utilisé un éditeur de textes sous windows pour faire ton script, par hasard?

(Pour le chmod, je pense qu'apache s'en fiche.)

velk
19/08/2005, 22h41
salut,

j ai testé avec le bash mais pareil , erreur 500..

je suis sur un 240plan ..?

pas non plus de bidouille de htaccess en vue

mon chmod est bien a 755 egalement


Homer Jay
19/08/2005, 22h04
velk écrivait :
(...)
et j obtiens

UNE ERREUR 500

alors la ...
Bon, je viens de faire exactement comme toi, et sur un 90plan, ça marche. Je n'ai pas bidouillé de fichier .htaccess.

Est-ce que python pourrait être ailleurs que dans /usr/bin/ sur ton hébergement? Est-ce que ce n'est pas un mauvais cache qui se souvient de l'ancienne erreur 500? Est-ce que ça marche si tu remplaces la première ligne par '#! /bin/bash' et les 'print' par des 'echo -e'?

Uzume
19/08/2005, 21h23
Bonsoir Velk

As-tu écris dans ton fichier .htaccess les lignes suivantes :

Code:
AddType text/x-python py
AddHandler python-program .py
Edit : Arfff c'est un .cgi... Quelle nouille je fais !
Donc ça ne peut être que le chmod


(Avec bien sûr un chmod à 705 ou 755 sur le py.cgi)

@ +

Mu.

velk
19/08/2005, 19h35
bon on reprends alors ,

j ai créer un script python :

Code PHP:
#!/usr/bin/python

print "Content-type: text/html\n\n"

print "Test cgi python \n"

print "Hello World"

print "" 
je le nomme py.cgi , je l uploadé dans mon www

je tappe l url

http://monsite.com/py.cgi

et j obtiens


UNE ERREUR 500

alors la ...





Uzume
17/08/2005, 01h46
Bonsoir Tinou,

Premièrement, pour qu'un .py fonctionne avec ton hébergement, il faut que tu rajoutes dans ton .htaccess :

Code:
AddType text/x-python py
AddHandler python-program .py
Dans notre cas, ceci fonctionnera seulement pour des scripts python situés dans le cgi-bin
Pour qu'ils fonctionnent dans le www, il faut les renommer en .cgi, comme le souligne Ludo

Une fois ces choses faites, tu n'obtiendras plus ton script en toutes lettres...

Mais hé hé, il te renverra à la place une belle erreur 500 tant que tu n'auras pas remplacé ton print "Content-Type: text/html" par un print "Content-Type: text/html\n\n"
Et oui, Monsieur Python prend ses aises

@+
Mu.

ludo
15/08/2005, 15h03
Code erreur 500
500 erreur interne : le serveur a rencontré une condition inattendue qui l’a empéché de donner suite à la requête

Ton programme python doit avoir une erreur, exécute-le dans un terminal : python , il doit te renvoyer le code html généré, éventuellement la pile d'erreur.

Voici un exemple très simple, soit le fichier echo_py.cgi contenant le code suivant :

Code:
#!/usr/bin/python

print "Content-type: text/html\n\n"

print "Test cgi python \n"

print "Hello World"

print ""
Tu places ce fichier sur ton espace web de ton mutualisé, et tu pointes ton navigateur dessus, il t'affiche "Hello World", soit


Code:
Test cgi python 

Hello World
Attention tu dois avoir une offre mutualisé qui supporte python :
http://ovh.com/fr/produits/mutualise.xml

velk
12/08/2005, 20h31
.cgi et puis ?

ca donne une erreur 500

ludo
15/04/2004, 00h20
extension : .cgi

Tinou
01/04/2004, 19h05
Soit le fichier suivant ayant pour nom test.py :
Code:
#!/usr/bin/python

print "Content-Type: text/html"
print "Hello!"
et placé a la racine de mon site avec comme droit : 705
http://www.tinou.net/test.py

Pourquoi m'affiche t'il le script et pas l'execution de celui-ci ?
C'est sur un 240plan


Merci a ceux peuvent m'aider