python -moo
Je suis tombé la dessus l’autre jour, en me baladant sur pypi
sudo pip install oo python -mooVoilà, il fallait que ça se sache :P
things i want to remember, things i want to share
Je suis tombé la dessus l’autre jour, en me baladant sur pypi
sudo pip install oo python -mooVoilà, il fallait que ça se sache :P
Juste pour signaler que j’ai coupé mes fonctions/classes de chargement/transformations d’image et de sons, de mon projet principal ultimate-smash-friends, pour les mettre dans un package python, pygame_loaders, que j’ai poussé sur pypi, et sur github…
vous pouvez donc soit les installer via pip:
pip install pygame_loaderssoit les cloner depuis github:
git clone git://github.com/tshirtman/loaders.py.gitla doc est chez l’un est l’autre, et dans le README ;) mais plus à venir sur son utilisation dans quelque temps :)
Voilà, pour dire que ça avance, on a une IA un peu bête, mais une IA quand même, on peut s’amuser un peu, alors j’ai fais un petit screencast, histoire de ^^. Il manque le son, faut que je refasse des essais avec gtk-recordmydesktop, il était tard cette nuit ^^.
vidéo trouvable aussi ici
Si le projet vous intéresse, plus d’infos ici
Lorsqu’on débute dans le développement web en python, la mise en place d’un environnement de développement propre, au vu des différents outils disponibles, peut être un vrai labyrinthe. Je présenterai donc ici trois outils modernes et efficaces permettant de gérer le déploiement de la plupart des frameworks web python: virtualenv, pip et distribute…
virtualenv permet de configurer un environnement python séparé de celui du système, l’interpréteur python et toutes les bibliothèques qui nous sont nécessaires seront installé dans cet environnement virtuel et ne perturberont pas le système… cela permet d’avoir un environnement identique sur différents serveurs avec des distributions différentes avec relativement peu de soucis.
pip permet d’installer des paquets python depuis pypi (connu aussi sous le nom de “cheese shop”) et de les installer, soit dans le système, soit dans le virtualenv choisit. Contrairement à easy_install (plus connus car plus ancien) pip est capable de nettoyer derrière lui, si on lui demande de désinstaller un paquet il le fait… il ne gère cependant pas les dépendance lors de la suppression.
distribute, qui sera utilisé par pip pour télécharger et installer les paquets depuis pypi, est une version activement maintenue de setuptools, qui permet d’utiliser et de créer des modules python (appelés eggs).
sudo easy_install pipC’est la dernière fois que nous toucherons easy_install, une fois fait ceci, on utilise pip pour installer virtualenv et distribute
sudo pip install virtualenv distributeIl faut maintenant créer notre virtualenv, il faut ici préciser que nous voulons utiliser distribute (sinon il utilise setuptools qui est assez buggé).
export VIRTUALENV_USE_DISTRIBUTE=true virtualenv my_virtual_python_envVous pouvez bien sur donner tout nom qui vous convient à votre virtualenv ;).
source my_virtual_env/bin/activatequi peut s’abrévier
. my_virtual_env/bin/activateOuf! Si tout s’est bien passé, on a un virtualenv opérationnel et chargé! (Pour “sortir” d’un virtualenv, utiliser la commande “deactivate”).
pip install pylons repoze.bfg bluebreamCes frameworks utilisent paster pour permettre la création d’un projet aisément, le fait de les installer (via pip) fournis des templates à paster… s’il n’a pas été installé automatiquement (par pip et dans le virtualenv, pas dans le systeme) installez le via
pip install pastedeploy paste pastescript(s’il a été installé dans le système auparavant, utilisez le très pratique pip uninstall pour faire le ménage).
paster --list-templatesexemple:
Available templates: basic_package: A basic setuptools-enabled package bfg_alchemy: repoze.bfg SQLAlchemy project using traversal bfg_routesalchemy: repoze.bfg SQLAlchemy project using Routes (no traversal) bfg_starter: repoze.bfg starter project bfg_zodb: repoze.bfg ZODB starter project bluebream: A BlueBream project paste_deploy: A web application deployed through paste.deploy pylons: Pylons application template pylons_minimal: Pylons minimal application templateCréer un projet repoze.bfg? rien de plus simple:
paster create -t bfg_ nom_du_projetLa base est là! Aller dans le dossier du projet, lancer:
python setup.py installPour déployer l’application (toujours dans votre virtualenv, et donc sans polluer votre système).
paster serve fichier.ini
voila, votre appli par défaut tourne sur 127.0.0.1:6543, le port étant bien sur réglable dans le fichier .ini.
elle est complètement isolée du système et donc aisément reproductible.
Cette mise en place peut paraître un peu laborieuse, mais a l’avantage d’une quasi totale indépendance au système cible, tout en restant simple à mettre à jours (pip install –upgrade), distribuable (création d’eggs avec distribute), et sûrement d’autres dont je n’ai même pas connaissance :P. J’espère que vous avez apprécié, n’hésitez pas à faire des remarques :).
Pour un bon moment celle ci j’espère.
Après l’achat (sur un coup de tête) de tshirtman.fr, je me suis dit que j’allais faire blog.tshirtman.fr et sérieusement ce coup ci… on (mon chef au boulot, plus connus sous le pseudo ccomb) m’avait conseillé zine qui à l’avantage d’être en python et de bonne facture, j’ai un peu galéré avant de trouver la bonne méthode d’installation (un buildout sur pypi bien sur >_<) mais en tout cas c’est propre et sympa…
Comme j’utilise apache pour les virtualhost, zine tourne en user normal via paster, sur un port quelconque, et apache lui renvoit les requetes via mod_proxy, c’est simple et efficace.
Je viens de finir d’importer les billets du pybloxom, j’aurais bien aimé retrouver les billets de mon vieux vieux blog, mais il semble que google n’ai pas daigné en garder du cache, que archive.org n’ai pas en la présence d’esprit de remarquer la contribution importante qu’ils représentaient… que je n’ai pas d’accès immédiat à mon serveur de l’époque (présentément eteinds), et que donc, je soit incapable, et sans doute pour un certain moment, de les récupérer.
Life’s life ^^.
sinon en ce moment je lis “the pragmatic programmer” qui contient une foule nombreuse de sages conseils sur le développement, reste à avoir l’intélligence de les mettre en application…
N’ayant pas le temps de développer mon moteur de blog, j’ai décidé de switcher vers pyblosxom, qui est simple mais assez complet… très “à la carte”, il me reste pas mal de config à faire mais ça semble fonctionnel, bientot les rss et les commentaires… normalement.
#!/usr/bin/env python
a=1
while True:
a+=1
print a
for b in range(a):
c_cube = a**3 + b**3
c = c_cube**(1.0/3)
if int (c) == c:
print a,b,c
break
… au bout d’un temps infini :).
J’ai décroché mon alternance à Alterway, et j’attaque donc les cours en septembre au niveau licence à l’EFREI en alternance, back to school! :D