Win3x.Org

Windows & DOS Community

Re: Python 2.5 et Windows 95

Forum rules

Pour tout sujet impliquant un système d'exploitation daté de 2000 à nos jours, merci de le publier dans la section intitulée « Informatique moderne ».

Post Reply   Page 1 of 2  [ 20 posts ]
Jump to page 1 2 »
Author Message
Der Siebte Schatten
Post subject: Re: Python 2.5 et Windows 95
Posted: 17 November, 20:32
Membre d'honneur
User avatar
Offline
 
Posts: 1897
Joined: 09 February, 21:10
Retro PC: Toshiba Satellite 220CS (WFW3.11/95/NT4)
 
Bien le bonsoir.

Comme certains le savent, le changement de programme dans les classes préparatoires a introduit de "l'informatique pour tous" (tu parles :lol: ). Et si l'année dernière, on utilisait que Maple pour faire du calcul formel, cette année nous sommes amenés à utiliser... Python ! :)

Bon, étant donné que je suis encore sur Windows 95, je suis obligé de rester à Python 2 (2.5 étant la dernière pour Windows 9x) alors que les autres sont sur Python 3. Seulement, j'ai quelques petits soucis :

:arrow: IDLE, l'interpréteur Python graphique qui permet d'éditer et d'exécuter parallèlement un script Python, refuse de démarrer sur Windows 95. Si je le démarre via le menu démarrer, l'ordinateur gratte un petit moment, puis plus rien. Via MS-DOS, il se plaint de DLL manquant. Il est possible que cela provienne du fait que je sois sur Windows 95 B sans Internet Explorer 4+.


:arrow: Celui-là est plus technique. Python 2 refuse tout script .py contenant des caractères non-ASCII (c'est à dire hors de la plage 32-127 de la table ASCII), par souci de compatibilité avec tous les systèmes, tant qu'on ne lui a pas précisé l'encodage utilisé. En fait, le comportement a été introduit volontairement à partir de Python 2.3 pour palier le fait que tout le monde, notamment en Asie, ne code pas en Latin-1.
La déclaration de l'encodage se fait en début de script, il y a 2 méthodes possibles. Jusqu'ici, tout va bien.

Le souci est là : Comme IDLE ne fonctionne pas, j'ai utilisé d'abord Bloc-notes pour éditer mes scripts Python (ce qui se fait très facilement en créant un fichier .py, après j'ai associé à ces fichier l'action secondaire "Edition avec Bloc-notes"). Le Bloc-notes sur Windows 9x encodant ses fichiers en ANSI, j'ai déclaré l'encodage comme ceci, avec l'alias que Python connait :
# coding=windows-1252
Or, pour ceux qui ne savent pas, à part avec IDLE, Python s'exécute dans une fenêtre MS-DOS... et donc Python, après avoir lu les caractères, s'il doit en afficher certains, il les traitera correctement... mais c'est DOS qui affiche à la fin. Et lui, il n'est pas en ANSI, mais en Code Page 850 (comme défini dans Autoexec.Bat dans les systèmes Windows 9x et DOS français).
# coding=cp-850
Du coup, les caractères non-ASCII passe bien dans Python, mais sont affiché incorrectement par MS-DOS dans la fenêtre MS-DOS.
D'ailleurs, le truc assez casse-pieds, c'est que DOS et Windows n'utilisent pas le même encodage pour les nom de fichiers. Du coup, lorsque le script crée un fichier texte et que son nom contient des caractères non-ASCII, l'explorateur Windows n'apprécie pas trop.
C'est pourquoi je me retrouve pour le moment à écrire mes scripts Python avec... l'éditeur MS-DOS, afin qu'il encode directement en Code Page 850 ! Merci tout de même le EDIT.PIF pour l'utiliser correctement dans Windows et pour pouvoir associer mes fichier.py à l'éditeur MS-DOS en secondaire.
Est-ce que je peux trouver un moyen pour que MS-DOS affiche en ANSI ou alors que Bloc-notes encode en Code page 850 ?


:arrow: Le souci avec Python en mode interprétateur de commandes (dans une fenêtre MS-DOS) et que, comme la plupart des application qui se lance dans une fenêtre MS-DOS, il se ferme automatiquement à la fin du programme.
Seulement, vous comprendrez bien que j'aimerais bien voir ce qu'il me retourne, pour des raisons évidentes de débogage. Le seul moyen sinon étant d'ouvrir une fenêtre MS-DOS, naviguer jusqu'à l'emplacement de mes fichiers scripts et de rentrer :
set PATH=C:\Python25
afin de pouvoir lancer Python et sélectionner mon fichier sans taper toute l'arborescence. C'est quand même un peu lourd...
Du coup, ayant vu l'éditeur MS-DOS qui dispose d'un .PIF correspondant, permettant d'ajuster plein de paramètres au programme MS-DOS (et lui définir un nom long plus une icône pour la barre de titre du programme), j'ai copier/coller le .PIF et l'ai modifier pour Python (j'ai pas trouvé l'éditeur PIF sur Windows 95). Comme cela, j'ai pu décocher la case "Fermer à la fin du programme" afin que la fenêtre reste ouverte.
Seulement, Python n'est pas vraiment un programme MS-DOS, c'est juste qu'il s'affiche dans MS-DOS (bien qu'en l'exécutant depuis une fenêtre MS-DOS, il s'ouvre dans la même fenêtre au lieu d'en ouvrir une nouvelle). Il a notamment une extension *.EXE (et non *.COM) et qu'il est 32-bits.
Du coup, ce qui devait arriver arriva, il m'affiche souvent cela lorsque je double clique sur un script Python (j'ai associé l'action principale des fichier *.py à ce fichier *.pif) :
Mémoire insuffisante
Et le programme s'arrête instantanément... mais au moins, dans tous les cas, la fenêtre ne se ferme plus, c'est déjà cela de gagné ! :lol:
En fait, j'ai remarqué qu'en ouvrant un script, le premier essai échoue, et si j'en fais un second moins de 5 secondes plus tard, cela fonctionne. Je précise que tous les paramètres "Mémoire" du fichier .pif sont réglés sur "Auto". Une idée pour y remédier ou pour remplacer le .pif ?



Si vous êtes arrivés ici, c'est que vous avez eu le courage de lire tout mon roman, félicitations ! :lol: (désolé, fallait bien que je mette quelques détails :oops: )

Bien la bonne soirée. :wink:

Edition du 17/11/2014 : Le problème de mémoire insuffisante est réglé ! En fait, il suffisait de ne pas laisser le paramètre de mémoire conventionnelle "Environnement initial" en mode automatique. Alors quand même, je dois avouer que Windows 95 est très fort sur le coup, parce qu'avec le réglage le plus faible possible (256)... Python fonctionne ! Donc en fait, il ne lui mettait rien à l'origine ! :lol:

_________________

[ img ]
Dunkle Träume, Roter Mond... In den Bäumen lauert ein Phantom...


Top
Quote
DoomQuakeKeen
Post subject: Re: Python 2.5 et Windows 95
Posted: 19 November, 18:12
Membre inscrit
User avatar
Offline
 
Posts: 2604
Joined: 05 April, 17:38
Retro PC: Amstrad PC2086/30, 8086, 640K, VGA, 32Mo RLL
 
J'ai réfléchi à ton problème de page de code différente entre Windows 95 et MS-DOS, pourquoi tu n'utilise pas un éditeur de texte autre que le bloc note de base de Windows (je parle d'en utiliser un sous Windows) qui est capable de régler l'encodage des caractères voulu pour un fichier ?

_________________

Vérification de l’orthographe pour Mozilla Firefox : http://addons.mozilla.org/fr/firefox/ad ... alecte-fr/
Vérification de l’orthographe pour Google Chrome : http://chrome.google.com/webstore/searc ... ecte?hl=fr
modérateur : [b][color=#00AA00][/color][/b]
administrateur : [b][color=#AA0000][/color][/b]
membre : [b][color=#006699][/color][/b]
[ img ]


Top
Quote
Der Siebte Schatten
Post subject: Re: Python 2.5 et Windows 95
Posted: 23 November, 16:41
Membre d'honneur
User avatar
Offline
 
Posts: 1897
Joined: 09 February, 21:10
Retro PC: Toshiba Satellite 220CS (WFW3.11/95/NT4)
 
... C'est justement ce que je demandais dudule80, voir si vous en connaissiez... :roll:
Bah laissez tomber. Finalement je m'y fait bien à l'éditeur MS-DOS qui a été bien optimisé sous Windows 95 avec le support de la souris. :)

Par contre me voici à une autre difficulté. Nous aurons besoin d'utiliser deux librairies pour Python, à savoir Numpy (pour du calcul mathématique) et matplotlib (pour le tracé de courbes).

Numpy v1.7 s'est installé et fonctionne sans problème (j'ai dû installer la version /nosse vu que le Pentium 133 ne gère ni SSE2 ni SSE3 :roll: ). En revanche matplotlib 1.1.1 (la dernière pour Python 1.5) et toute version antérieure me pose problème. Il s'installe très bien, mais après...
import matplotlib.pyplot as plt
Retour (dernière ligne, les autres ne sont pas utiles) :
ImportError: DLL load failed: Une des librairies nécessaires à l'exécution de cette application n'a pu être trouvée.
D'après le site de matplotlib, ce dernier a besoin de msvcp71.dll, car comme pas mal de librairies Python, certaines parties sont codés en C++ (d'autres font encore plus fort, Fortran ! :lol:) car le Python se vautre complètement pour certains trucs.
J'ai essayé de télécharge le fichier en question est de le mettre dans le répertoire système. Pas de progrès. Y aurait-il un installateur pour Visual C++ 7.1 pour Windows 95 ?

_________________

[ img ]
Dunkle Träume, Roter Mond... In den Bäumen lauert ein Phantom...


Top
Quote
SupaSonic
Post subject: Re: Python 2.5 et Windows 95
Posted: 29 November, 22:06
Membre inscrit
User avatar
Offline
 
Posts: 109
Joined: 24 March, 04:25
 
J'aime pas lire les blocs de texte et je vais juste repondre aux problemes.
Quote:
Y aurait-il un installateur pour Visual C++ 7.1 pour Windows 95 ?
Bonne nouvelle pour toi , OUI, il y en a un. (Contrairement a ceux que la plupart des gens pense)
Télécharge ceci et lance les deux fichiers .bat.
Une fois tout cela fait , redemarre ton ordinateur.

Une personne a également porté Python 2.7 pour Windows 95. (et python27.lib aussi)
Regarde ça : viewtopic.php?t=15713

Comme editeur de texte, je te conseille vraiment d'utiliser une vielle version de Notepad++.
(pas bien différentes des nouvelles versions d'ailleurs)

Editer des scripts python sous DOS ? T'es fou ou quoi ? lol

Last edited by Big Monstro on 20 September, 11:13, edited 1 time in total.
Remplacement de liens externes par des pages postérieures de Win3x.Org


Top
Quote
Der Siebte Schatten
Post subject: Re: Python 2.5 et Windows 95
Posted: 30 November, 11:06
Membre d'honneur
User avatar
Offline
 
Posts: 1897
Joined: 09 February, 21:10
Retro PC: Toshiba Satellite 220CS (WFW3.11/95/NT4)
 
Enfin quelqu'un qui peut me répondre ! :D

Ah ben voilà, je me disais bien que cela devait traîner quelque part ! Bien le merci ! :wink:

Sinon j'ai vu pour Python 2.7. J'avais essayé d'installer la version présente ici, mais je n'avais pas réussi à l'exécuter car j'ignorais comment régler les variables d'environnement. Maintenant j'ai trouvé, mais la version 2.7 apporte-t-il vraiment quelque chose de plus que la 2.5 ? :| (À part peut-être le fait que je pourrais utiliser des versions de numpy et de matplotlib plus récentes)

Concernant Notepad++, je n'avais jamais essayé, je vais voir. Sinon je me débrouillais très bien avec l'éditeur MS-DOS, crois-moi ! :lol:

PS : Au passage, j'avais réglé le problème du DLL à la manière forte en attendant. En fait, c'est le module "socket.py" qui foire en important _socket et qui fait échouer le chargement de matplotlib (et d'IDLE aussi au passage). Comme ce n'est pas une librairie importante pour matplotlib (en fait, il l'appelait après une suite de 8 modules qui en appelait un autre :lol:), je l'ai neutralisé (je l'ai renommé en .old et créé un nouveau avec juste un print "Module neutralisé"). Matplotlib fonctionnait, mais toujours pas IDLE.

_________________

[ img ]
Dunkle Träume, Roter Mond... In den Bäumen lauert ein Phantom...


Top
Quote
SupaSonic
Post subject: Re: Python 2.5 et Windows 95
Posted: 30 November, 19:41
Membre inscrit
User avatar
Offline
 
Posts: 109
Joined: 24 March, 04:25
 
Quote:
Sinon j'ai vu pour Python 2.7. J'avais essayé d'installer la version présente ici, mais je n'avais pas réussi à l'exécuter car j'ignorais comment régler les variables d'environnement. Maintenant j'ai trouvé, mais la version 2.7 apporte-t-il vraiment quelque chose de plus que la 2.5 ? :| (À part peut-être le fait que je pourrais utiliser des versions de numpy et de matplotlib plus récentes)
Si c'est pour l'ecole , je te conseille d'utiliser Python 2..7 si tu peux l'utiliser car il est encore supporté par Python et les dev qui programme en python.
De plus , il risque de te demander d'utiliser une bibliothéque python qui risque de demander obligatoirement Python 2.7+.
A toi de voir.
Quote:
PS : Au passage, j'avais réglé le problème du DLL à la manière forte en attendant. En fait, c'est le module "socket.py" qui foire en important _socket et qui fait échouer le chargement de matplotlib (et d'IDLE aussi au passage). Comme ce n'est pas une librairie importante pour matplotlib (en fait, il l'appelait après une suite de 8 modules qui en appelait un autre :lol:), je l'ai neutralisé (je l'ai renommé en .old et créé un nouveau avec juste un print "Module neutralisé"). Matplotlib fonctionnait, mais toujours pas IDLE.
Je te conseille quand même d'installer les Visual c++ runtime 7.1/8.0 pour Windows 95, sauf si tu n'arrive pas à les installer.

Hors Sujet: Et je confirme que Python 2.73rc2 marche sur Windows NT 3.51 :
http://img110.xooimage.com/files/2/1/7/ ... 8d3942.png

EDIT: Je confirme que IDLE ne fonctionne pas sous Windows NT/95.
De toute manière tu n'en a pas besoin puisque tu peux utiliser des editeurs de textes comme
Notepad++ qui en plus possède une colorisation de syntaxe pour Python et
tu peux ensuite les lancer avec directement avec python.
Donc pas de soucis.


Top
Quote
Der Siebte Schatten
Post subject: Re: Python 2.5 et Windows 95
Posted: 23 January, 22:00
Membre d'honneur
User avatar
Offline
 
Posts: 1897
Joined: 09 February, 21:10
Retro PC: Toshiba Satellite 220CS (WFW3.11/95/NT4)
 
Bon pour l'instant, je dois avouer avoir un peu la flemme de passer à Python 2.7, et pour l'instant je m'en sors bien avec la version 2.5 et les versions actuelles de numpy, scipy et matplotlib. Pour l'instant je vais rester comme cela.

Pour Notepad++ c'est bon, j'ai réussi à mettre la version 3.9 sur ma machine (attention, c'est la dernière version fonctionelle sous Windows 95 !). Juste si quelqu'un sait paramétrer le module ConvertExt de Notepad++, c'est grâce à lui que je peux afficher/écrire mes fichiers en mode DOS, mais par défaut, à chaque démarrage, il est en mode Windows. Peut-on changer ce comportement par défaut ?


Sinon je m'attaque à un problème bien classique avec les consoles de Windows 9x sans barre de défilement : Les sorties trop longues qui ne tiennent pas dans le terminal.

C'est un souci bien classique mais auquel je n'arrive pas à trouver de solutions. Une petite démonstration ? Ce script sur les tours de Hanoï :
  SPOILER Disabled
Avant simulation :
[ img ]
Après simulation :
[ img ]
Evidemment du coup, j'ai loupé tous les coups qu'il a donné entre temps. Certes je pourrais choisir d'écrire cela dans un fichier, mais j'aimerais bien quand même pouvoir afficher cela dans la console, par pages si nécessaire (comme le fait DOS avec la commande dir et le commutateur /p).
Cela doit être possible, étant donné que cela est utilisé avec la fonction d'aide de Python :
  SPOILER Disabled
[ img ]
Une idée sur comment implémenter la fonction dans n'importe quel script ? Comme vous avez vu sur la première capture, j'ai juste trouvé comment faire attendre le script pour une action utilisateur.
import os
os.system("pause")
Edition : Je crois que je viens de trouver comment ils se débrouillent. C'est une fonction dans le module pydoc.py. Mais c'est pas la plus simple de toute... :?
En plus, cette fonction est prévue pour afficher tout un bloc de texte d'un coup. Cela ne convient pas dans mon cas où il s'agit d'une suite de print d'une seule ligne.
def ttypager(text):
    """Page through text on a text terminal."""
    lines = split(plain(text), '\n')
    try:
        import tty
        fd = sys.stdin.fileno()
        old = tty.tcgetattr(fd)
        tty.setcbreak(fd)
        getchar = lambda: sys.stdin.read(1)
    except (ImportError, AttributeError):
        tty = None
        getchar = lambda: sys.stdin.readline()[:-1][:1]

    try:
        r = inc = os.environ.get('LINES', 25) - 1
        sys.stdout.write(join(lines[:inc], '\n') + '\n')
        while lines[r:]:
            sys.stdout.write('-- more --')
            sys.stdout.flush()
            c = getchar()

            if c in ('q', 'Q'):
                sys.stdout.write('\r          \r')
                break
            elif c in ('\r', '\n'):
                sys.stdout.write('\r          \r' + lines[r] + '\n')
                r = r + 1
                continue
            if c in ('b', 'B', '\x1b'):
                r = r - inc - inc
                if r < 0: r = 0
            sys.stdout.write('\n' + join(lines[r:r+inc], '\n') + '\n')
            r = r + inc

    finally:
        if tty:
            tty.tcsetattr(fd, tty.TCSAFLUSH, old)

_________________

[ img ]
Dunkle Träume, Roter Mond... In den Bäumen lauert ein Phantom...


Top
Quote
DoomQuakeKeen
Post subject: Re: Python 2.5 et Windows 95
Posted: 23 January, 23:55
Membre inscrit
User avatar
Offline
 
Posts: 2604
Joined: 05 April, 17:38
Retro PC: Amstrad PC2086/30, 8086, 640K, VGA, 32Mo RLL
 
Alors là moi je ne peut pas t'aider, j'ai du faire uniquement 2-3 fois quelques lignes de Python. Sinon n'y aurait-il pas un programme qui permette d'afficher une barre de défilement dans une fenêtre de commande ?

_________________

Vérification de l’orthographe pour Mozilla Firefox : http://addons.mozilla.org/fr/firefox/ad ... alecte-fr/
Vérification de l’orthographe pour Google Chrome : http://chrome.google.com/webstore/searc ... ecte?hl=fr
modérateur : [b][color=#00AA00][/color][/b]
administrateur : [b][color=#AA0000][/color][/b]
membre : [b][color=#006699][/color][/b]
[ img ]


Top
Quote
NeuhNeuh
Post subject: Re: Python 2.5 et Windows 95
Posted: 30 March, 18:16
Membre inscrit
User avatar
Offline
 
Posts: 240
Joined: 04 June, 00:00
 
Oui et non. Tu peux essayer ncurse il y a quelques éléments de réponse ici : http://stackoverflow.com/questions/6617 ... -like-more
Mais j'ai bien peur que tu doives faire à la main les scrolls :

_________________

[ img ]


Top
Quote
DoomQuakeKeen
Post subject: Re: Python 2.5 et Windows 95
Posted: 02 April, 17:29
Membre inscrit
User avatar
Offline
 
Posts: 2604
Joined: 05 April, 17:38
Retro PC: Amstrad PC2086/30, 8086, 640K, VGA, 32Mo RLL
 
J'ai trouvé ceci mais je ne sais pas si ça fonctionne sous Win 95 http://www.chami.com/tips/windows/050298W.html

_________________

Vérification de l’orthographe pour Mozilla Firefox : http://addons.mozilla.org/fr/firefox/ad ... alecte-fr/
Vérification de l’orthographe pour Google Chrome : http://chrome.google.com/webstore/searc ... ecte?hl=fr
modérateur : [b][color=#00AA00][/color][/b]
administrateur : [b][color=#AA0000][/color][/b]
membre : [b][color=#006699][/color][/b]
[ img ]


Top
Quote
Display: Sort by: Direction:
Post Reply   Page 1 of 2  [ 20 posts ]
Return to “Informatique des vieux systèmes” | Jump to page 1 2 »
Jump to: