Sam & Max: Python, Django, Git et du cul » windows http://sametmax.com Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 14:20:37 +0000 en hourly 1 http://wordpress.org/?v=3.3.1 Ouvrir un fichier avec le bon programme en Python http://sametmax.com/ouvrir-un-fichier-avec-le-bon-programme-en-python/ http://sametmax.com/ouvrir-un-fichier-avec-le-bon-programme-en-python/#comments Thu, 17 Oct 2013 10:09:59 +0000 Sam http://sametmax.com/?p=7469 Votre logiciel doit permettre d’ouvrir un fichier avec un programme externe. Oui mais lequel ?

Les OS ont des réglages par défaut pour chaque type de fichier, et on peut demander “ouvrir le prog pour ce type de fichier par défaut”. Par exemple, moi, si je demande d’ouvrir un fichier vidéo, je m’attend à ce que VLC soit lancé.

Voilà comment faire ça en Python :

import subprocess
import sys
import os
 
def run_file(path):
 
    # Pas de EAFP cette fois puisqu'on est dans un process externe,
    # on ne peut pas gérer l'exception aussi facilement, donc on fait
    # des checks essentiels avant.
 
    # Vérifier que le fichier existe
    if not os.path.exists(path):
        raise IOError('No such file: %s' % path)
 
    # On a accès en lecture ?
    if hasattr(os, 'access') and not os.access(path, os.R_OK):
        raise IOError('Cannot access file: %s' % path)
 
    # Lancer le bon programme pour le bon OS :
 
    if hasattr(os, 'startfile'): # Windows
        # Startfile est très limité sous Windows, on ne pourra pas savoir
        # si il y a eu une erreu
        proc = os.startfile(path)
 
    elif sys.platform.startswith('linux'): # Linux:
        proc = subprocess.Popen(['xdg-open', path], 
                                 # on capture stdin et out pour rendre le 
                                 # tout non bloquant
                                 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
    elif sys.platform == 'darwin': # Mac:
        proc = subprocess.Popen(['open', '--', path], 
                                stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
    else:
        raise NotImplementedError(
            "Your `%s` isn't a supported operatin system`." % sys.platform)
 
    # Proc sera toujours None sous Windows. Sous les autres OS, il permet de
    # récupérer le status code du programme, and lire / ecrire sur stdin et out
    return proc

C’était le petit snippet sympas du jour !

P.S : si quelqu’un utilise BDSM BSD ou Solaris, je veux bien qu’il complète le snippet.

flattr this!

]]>
http://sametmax.com/ouvrir-un-fichier-avec-le-bon-programme-en-python/feed/ 16
Gagner de la place sur Windows 7 http://sametmax.com/gagner-de-la-place-sur-windows-7/ http://sametmax.com/gagner-de-la-place-sur-windows-7/#comments Tue, 05 Mar 2013 10:02:24 +0000 Sam http://sametmax.com/?p=5236 Vous avez un dual boot que vous utilisez rarement, mais disons totalement hypothétiquement que vos amis se mettent à jouer à League of Legend et que soudainement vous allez la réutiliser.

Vous bootez, et la stupeur vous gagne, il reste 2,1Mo de place libre sur la partition. Après avoir appuyé 3 fois sur “vider la corbeille” pour être bien sûr, le desespoir vous gagne.

Don’t panic.

Détecter et virer les gros fichiers

Vous téléchargez Win Dir Stats, vous lancez un scan complet, et il va vous montrer les plus gros fichiers / dossiers de votre ordi. Il ne vous reste plus qu’à surpprimer manuellement tous ces parasites avec shift + delete pour les envoyer directement dans l’oblivion, sans passer par la case corbeille, et sans toucher 20 000 francs.

Desinstaller massivement

L’utilitaire de désinstallation de Windows est à chier. Absolute uninstaller est rapide et vous permet de supprimer allégrement tous ces boulets qui vous encombre.

Vider winsxs

C’est un dossier que Windows 7 ADOOOOOOOOORE charger de plein de merdes qui ne sont en fait que des fichiers temporaires. Ca peut monter jusqu’à 20 Go. Si.

Donc on cherche cmd.exe dans le menu, on clic droit > “Executer en tant qu’Administrateur” et on lance la commande :

DISM /online /Cleanup-Image /SpSuperseded

C’est un peu long, mais ça libère quelques Go.

Se débarrasser du fichier hyberfil.sys

Quand on est en dual boot avec Linux comme système principal, on en a rien à branlé de la mise en veille de Windows. Qui prend quand même 4Go avec sont super fichier hyberfil.sys.

Donc pareil, vous lancez une console en tant qu’administrateur, et vous lui fermez sa gueule:

powercfg.exe -h off

Un petit reboot, et l’hybernation est désactivée.

flattr this!

]]>
http://sametmax.com/gagner-de-la-place-sur-windows-7/feed/ 31
Programmer confortablement en Python sous Windows http://sametmax.com/programmer-confortablement-en-python-sous-windows/ http://sametmax.com/programmer-confortablement-en-python-sous-windows/#comments Tue, 25 Dec 2012 19:05:46 +0000 Sam http://sametmax.com/?p=3865 notepad++ fait très bien l'affaire) et la ligne de commande. Problème, la ligne de commande est à chier sous Windows. Alors oui, vous pouvez coder dans ces conditions, mais franchement, pourquoi ne pas passer 30 minutes pour vous mettre à l'aise ?]]> Python est un langage qui demande très peu pour programmer: pas d’IDE, de compilateur, de RAD ou autre. Juste un petit éditeur de texte (notepad++ fait très bien l’affaire) et la ligne de commande.

Problème, la ligne de commande est à chier sous Windows. Alors oui, vous pouvez coder dans ces conditions, mais franchement, pourquoi ne pas passer 30 minutes pour vous mettre à l’aise ?

Max est sous Mac, et je suis sous Ubuntu, mais c’est pas pour ça qu’on oublie nos racines. On a tous les deux commencé sous Windows. Perso, j’ai fait mes premiers clics de souris sur 3.1 (avant j’avais pas de souris :-)). Alors suivez le guide.

Avoir les commandes Python sous la main

Les commandes installées par des scripts Python, parfois même la commande python elle-même, ne sont pas toujours accessibles depuis la console. Assurez-vous donc d’avoir bien “c:\Python27;c:\Python27\Scripts;” à la fin de votre System PATH.

Améliorer la console

Une fois que vous avez installé Python (toujours v2.7 en 32 bits. TOUJOURS), vous avez accès au shell. Premier constat, copier / coller dans un terminal cmd.exe est aussi plaisant qu’une coloscopie un lendemain de cuite (pour vous et le praticien).

Idéalement, il faut installer un terminal alternatif. Le logiciel opensource Console2 est parfait pour ça: on peut faire du copier / coller facilement, il a des onglets, on peut régler la taille de la fenêtre…

Pour l’installer suffit de télécharger le zip, l’extraire dans “C:\Programmes Files” et faire un raccourci sur le bureau vers “C:\Program Files\Console2\Console.exe”.

Améliorer le shell Python

Le shell Python est fantastique, à l’exception de tous les autres. Donc votre premier réflexe, c’est bien entendu d’installer iPython. Sauf que Windows n’a pas readline, du coup vous n’allez pas avoir la coloration du prompt ni la completion du code. Ca craint.

C’est là que pip va encore une fois nous sauver la mise:

pip install pyreadline

Et votre shell iPython, lancé depuis Console2 est maintenant un outil presque aussi confortable à utiliser que sous Linux ou Mac avec historique, auto indent et tout le toutim. Presque, faut pas abuser non plus.

Et pour quelques outils de plus

Windows n’ayant pas de truc comme grep, installer grin va vous permettre de rapidement et confortablement chercher dans votre code. Donc, pip install grin.

Mais aller directement dans le dossier voulu depuis la ligne de commande à grand coup de cd, c’est relou. On va arranger ça.

Ouvre l’éditeur de registre (“Windows + R” puis regedit puis “enter”) et naviguez dans l’arboresence jusqu’à:

HKEY_CLASSES_ROOT\Directory\shell\

Cliquez droit dans le panel de droite, et faites “Nouveau > Clé” et appelez la clé “open_shell”. Puis cliquez sur le dossier ainsi créé, et dans le panel de droite, cliquez sur l’espèce d’icône “AB” intitulée “(Par défaut)”, et donnez lui la valeur “Ouvrir Console2 ici”.

Dans le dossier “open_shell”, créez un dossier “Command” (en faisant “Clic Droit > Nouveau > Clé”).

Donnez à “(Par défaut)” pour valeur le chemin vers Console2 suivit de ‘-d “%1″‘, par exemple pour moi:

"C:\Program Files (x86)\Console2\Console.exe" -d "%1"

Fermer l’explorateur de fichiers, et réouvrez le. Hop ! Vous avez une nouvelle entrée dans le menu du clic droit qui permet d’ouvrir Console2 dans n’importe quel dossier.

flattr this!

]]>
http://sametmax.com/programmer-confortablement-en-python-sous-windows/feed/ 26
Ajouter un chemin à la variable d’environnement PATH sous Windows http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/ http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/#comments Thu, 18 Oct 2012 20:19:16 +0000 Sam http://sametmax.com/?p=2642 Il y a beaucoup de tutos qui demandent de simplement “ajouter le résultat au PATH”, mais assez peu expliquent pourquoi et comment le faire.

Comme on aime bien faire les choses à l’envers chez Sam et Max, on va d’abord expliquer comment, et ensuite pourquoi.

Modifier le PATH sous Windows 7 et XP

Il faut d’abord ouvrir l’outil d’édition des variables d’environnement.

Sous Windows XP, c’est:

  • Clic droit sur l’icône “Ordinateur” de votre Bureau (ou dans le panel de gauche de l’explorateur de fichiers) et dans le menu-contextuel, allez sur “Propriétés”.
  • Dans la fenêtre “Propriétés système” qui vient de s’ouvrir, allez dans l’onglet “Avancé”
  • Enfin, cliquez sur le bouton “Variables d’environnement…”

Sous Windows 7, c’est presque pareil:

  • Clic droit sur l’icône “Ordinateur” de votre Bureau (ou dans le panel de gauche de l’explorateur de fichiers) et dans le menu-contextuel, allez sur “Propriétés”.
  • Dans la grande fenêtre qui s’ouvre, cliquez sur le lien “Paramètres système avancés” dans la liste de gauche.
  • Dans la nouvelle fenêtre ainsi ouverte, cliquez sur le bouton “Variables d’environnement…”

Dans les deux cas, vous allez vous retrouver avec la fenêtre le plus détestée du monde de Windows, la fameuse fenêtre “Variables d’envionnement”. Toute petite, illisible, est pas redimensionable. Vous ne l’oublierez plus jamais:

Capture d'écran de la fenêtre des variables d'environnement de Windows

Oh mon dieu, il nous fonce dessus !

Dans cette fenêtre, dans la partie “Variables systèmes” (la liste du bas), il faut cliquer sur la ligne qui contient ‘Path’, de telle sorte qu’elle soit sélectionnée (en couleur alors que les autres items de la listes ne le sont pas). Il vous faudra sûrement scroller un peu pour la trouver.

Ensuite il faut cliquer sur le bouton “Modifier…”.

Là s’ouvre une fenêtre avec deux champs, le deuxième, “Valeur de la variable”, est celui qui nous intéresse. Il est absolument chiant à modifier, alors faites plutôt un copier/coller dans un éditeur de texte à part: Ctrl + A pour tout selectioner, Ctrl + C pour tout copier, puis Ctrl + V pour tout coller ailleurs, car je ne suis pas sûr que le clic droit fonctionne dans cette grosse bouse.

Vous devriez avoir un texte qui ressemble à ceci (pas exactement le même, mais proche):

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;

Ne retirez rien de cette valeur si vous ne savez pas ce que vous faites.

Pour ajouter quelque chose au PATH de Windows, il suffit de le mettre tout collé à la fin, suivit d’un ‘;’

Par exemple, pour rajouter le chemin vers l’installation de Python dans le PATH de Windows:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Python27;

Attention, si vous avez copié/collé le contenu ailleurs, supprimez bien l’ancien contenu en le remplaçant complètement par le nouveau (Ctrl + A, Ctrl + V) sinon vous allez tout péter.

A quoi servent les variables d’environnement et le PATH ?

Sous tous les OS, il y a des variables qui déterminent le fonctionnement de celui-ci (ou plutôt du shell, mais ce n’est pas important). Elles permettent à l’utilisateur, en changeant la variable, de choisir certains comportement primitifs du système.

Par exemple, quand vous tapez une commande dans un terminal, le système va utiliser la variable d’environnement PATH. Il va prendre chaque dossier listé dans PATH, et regarder si il trouve la commande dedans. Si il trouve cette commande, il la lance, et arrête la recherche. Si il ne trouve pas la commande, il va vous dire que la commande n’existe pas.

Ainsi, si vous avez installé Python mais que le shell Python ne se lance pas quand vous entrez la commande python dans un terminal, ajouter C:\Python27; au PATH peut résoudre le problème: Windows va maintenant chercher dans ce dossier également pour voir si la commande existe.

flattr this!

]]>
http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/feed/ 5