Publié dans debian, GNU/Linux, Langages, Linux, Python, webdev

Gérer vos environnements virtuels avec Virtualfish sur fish shell.


Hello  python guys  , je vous présente un outil que j’aime bien pour gérer mes environnements virtuels dans python.je veux nommer VirtualFish (VF) qui est un outil à base de virtualenv.Mais avant d’avancer je dois vous avouer qu’il faut laisser de coté le célèbre bash  et migrer vers fish shell qui est plutôt « intelligent ». Je vous parlerai pas de la différence entre bash et fish et laisse la tache à votre curiosité j’ai confiance en elle :-p . Personnellement je le trouve fabuleux comme shell et pour info je suis passé de bash à zsh+Ohmyzsh pour finalement rester sur Fish.

Prérequis

    • Disposer d’une machine GNU/LINUX
    • Installer fish
      sudo apt install fish 
    • Démarrer le shell  fish
      :~$ fish 
    • Nous aurons quelque chose comme:
      Welcome to fish, the friendly interactive shell
      elwan@elwan ~>
      

    Nous pouvons aussi garder les deux shells selon votre convenance et démarrer sur fish uniquement si nous le désirons et pour fixer fish comme shell par défaut ouvrons un terminal et exécutons la commande suivante:

     chsh -s `which fish` 

Installation de Virtual fish

Pour l’installer nous allons utiliser Pip et taper la commande suivante :

pip install virtualfish

Ajoutons la ligne suivante sur le ficher ~/.config/fish/config.fish

eval (python -m virtualfish) 

Configuration de fish

Virtualenv ne sera pas automatiquement intégrer dans notre invite de commande (prompt) fish pour l’ajouter nous allons taper la commande

    funced fish_prompt 

Et ajoutons la ligne suivante n’importe ou dans le fichier ouvert

if
set -q VIRTUAL_ENV
echo -n -s (set_color -b blue white) "(" (basename "$VIRTUAL_ENV") ")" (set_color normal) " "
end

Ensuite pour sauvegarder les modifications sur le prompt nous pouvons taper la commande:

     funcsave fish_prompt 

Comment utiliser Virtualfish

Nous pouvons citer quels commandes utiles

  • vf new [] pour créer un environnement virtuel
  • on peut même spécifier la version de python que l’on souhaite utiliser ex :

    vf new -p python3 test 
  • vf activate pour activer un environnement virtuel
  • vf activate test 
  • vf deactivate pour sortir de l’environnement virtuel en cours
  • vf deactivate 
  • vf ls pour lister l’ensemble des environnements virtuels qui ont été créés
  • vf ls  
  • vf rm pour supprimer un environnement virtuel
  • vf rm test 

Pour avoir toutes les commandes disponibles nous pouvons juste de taper vf dans le prompt

Ajouter les plugins

Il existe des plugins natifs dans virtualfish et pour les avoir au niveau du prompt nous devons éditer le fichier de config et ajouter leur nom en argument à virtualfish.
Ex:

eval (python -m virtualfish compat_aliases auto_activation) 

La liste des plugins que nous pouvons ajouter à VF.

    • compat_aliases

Permet de d’avoir les commandes de virtualenvwrapper

    • auto_activation

pour activer virtualenv dans certain repertoire automatiquement

    • global_requirements

mettre une liste de dépendances dans un fichier requirements.txt et l’appliquer pour touts les nouveaux environnements

    • projects

ajouter les fonctionnalités de gestion par projet

Voilu voila et si vous avez des remarques ou des outils plus cool n’hésiter pas à partager en commentaire.

Publicités
Publié dans Python

Lister les nouveaux fichiers et supprimer les anciens dans un repertoire avec python


Si vous sauvegardez des fichiers logs  dans un répertoire vous aurez peut être envi un jour de faire le ménage  en supprimant les anciens fichiers et garder les nouveaux.Je suis plus ou moins dans le même contexte et j’ai écrit un script en python qui fait mon bonheur.Si jamais ça peut vous être utile temps mieux :-).

# Supprimer les anciens fichiers .dat et garder les n plus récents
import os
path = '/Users/elwan7/fichier_dat/'
nombre_fichier_recent = 5

os.chdir(path)
fichiers = sorted(os.listdir(os.getcwd()), key=os.path.getmtime)
fichiers_dat = []
for element in fichiers:
    if element.endswith('.dat'):
        fichiers_dat.append(element)

liste_nouveau = fichiers_dat[-nombre_fichier_recent:]
file_to_delete = fichiers_dat
for r in liste_nouveau:
    file_to_delete.remove(r)
if file_to_delete:
    for i in file_to_delete:
        os.remove("{}".format(path + '/' + i))

Publié dans Python, Serveurs

Installation de Odoo 8.0 (ex openerp) sur ubuntu 14.04 LTS


Odoo est un PGI(progiciel de gestion intégré) qui peut regrouper l’ensemble des fonctions(gestion de stock,comptabilité,vente,RH,CRM,…) d’une entreprise dans un seul programme informatique dans le but de facilité l’interaction avec les différents départements, d’éviter la redondance d’informations pour ne citer que cela .Dans la liste des PGI encore appelé ERP(en anglais) nous pouvons distinguer les EPR opensources(odoo,openbravo,trython,…) et propriétaires(SAP,SAGE,GEAC…),ainsi dans cette article nous allons parler du plus célèbre des ERP opensource. Nous n’allons pas parler de l’aspect fonctionnel pour le moment.Ainsi si vous lisez ces lignes je suppose que vous êtes déjà imprégné sur le sujet et que vous avez décidé de passez à l’installation pour vous familiarisez avec ce système.L’installation peut se faire de plusieurs façons mais nous avons choisi l’installation depuis les sources qui facilite le développement et l’intégration de nouveau module et le déboggage en cas de problème. Pour en savoir plus sur les autres méthodes d’installation vous pouvez visitez la documentation officielle ici

Pre-requis

Nouvelle installation de Ubuntu-server 14.04 si vous n’avez pas l’image vous pouvez aller le télécharger au niveau du site officiel Ici.
L’installation de la machine GNU/Linux ne sera pas détaillée dans ce tutoriel merci de votre compréhension :-p .
N’oubliez pas d’installer openssh-server pour accéder à votre machine à distance(optionnel).

Première étape :

Installation de git et des dépendances

sudo apt-get install git

sudo apt-get install graphviz ghostscript postgresql-client \
python-dateutil python-feedparser python-matplotlib \
python-ldap python-libxslt1 python-lxml python-mako \
python-openid python-psycopg2 python-pybabel python-pychart \
python-pydot python-pyparsing python-reportlab python-simplejson \
python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-imaging

sudo apt-get install gcc python-dev mc bzr python-setuptools python-babel \
python-feedparser python-reportlab-accel python-zsi python-openssl \
python-egenix-mxdatetime python-jinja2 python-unittest2 python-mock \
python-docutils lptools make python-psutil python-paramiko poppler-utils \
python-pdftools antiword

installer le paquet wkhtmltopdf qui permet d’avoir des rapports en pdf ainsi il faut installer le paquet manuellement au moment au j’écris ces lignes la version disponible dans les depots de Ubuntu n’est pas compatible avec odoo 8.Voici le lien directe pour telecharger la version de Ubuntu Trusty ici

ensuite installer le paquet avec la commande suivante

wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

Deuxième étapes :

Installation et configuration de la base de donnee

sudo apt-get install postgresql
creation de l’utilisateur odoo pour la base de donnée
sudo -u postgres createuser -s odoo

Troisième étapes :

Récupérer le code source de odoo depuis github
wget -O- https://raw.githubusercontent.com/odoo/odoo/8.0/odoo.py | python

Quatrième étapes :

exécuter le serveur
cd odoo
./openerp-server

Maintenant si tout se passe bien notre application sera disponible à l’url suivant http://localhost:8069

NB:

Si pendant le démarrage de l’application vous obtenez l’erreur suivante
raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

la solution est :
export LC_CTYPE='en_US.utf8'
Et redémarrer l’application à nouveau .

Publié dans Langages, Linux, Python, Telecoms

Envoyer un sms avec votre ordinateur via bluetooth


Ceci est un script python qui permet d’envoyer un sms depuis son ordinateur via une connexion bluetooth avec un téléphone portable.Ceci ne représente pas grand chose…. mais je juge utile de le partager pour l’améliorer  😉

Donc avant toute chose sachez qu’on a deux méthodes d’envoi de sms avec les Commandes AT:

-Le mode Texte(140 caracteres)

-Le mode PDU(160 caracteres)

dans ce tuto le mode Texte sera utilise pour en savoir plus sur les sms suivez ce lien…. en anglais  😛

Prerequis

    • système d’exploitation Linux(Ubuntu)

 

  • Installer Python

 

 

  • Installer les Modules  python-bluetooth  python-bluez

 

 

  • Un téléphone Portable compatible mode texte

 

 

  • Une clé bluetooth a défaut d’un périphérie natif sur votre ordinateur

 

 

  • Un tout petit peu de connaissance en Python 🙂

 

 

Script

 #!/usr/bin/python # -*- encoding: utf-8 -*- import bluetooth #entrer le nom du peripherie bluetooth target_name =raw_input("entrer le nom de votre periphérie:\n") target_address = None #recherche des périphéries bluetooth disponibles nearby_devices = bluetooth.discover_devices() #recherche le nom de votre périphérie dans la liste des adresses disponibles for bdaddr in nearby_devices: if target_name == bluetooth.lookup_name( bdaddr ): target_address = bdaddr break #si la périphérie est trouvée on se lance dans le processus de connexion au téléphone grâce au protocole RFCOMM #on a besoin d'un canal de communication et de l'adresse du périphérie if target_address is not None: bt_addr = target_address channel =  bluetooth.find_service(address=bt_addr, uuid=bluetooth.DIALUP_NET_CLASS)[0]['port'] #channel = 1 #si la connexion est établie on entre le numéro du destinataire et le message a envoye(max 140 caracteres) dest =raw_input("Entrer le numéro du destinataire:\n") text =raw_input("Entrer votre message:\n") #connection au périphérie via RFCOMM sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) sock.connect((bt_addr, channel)) # passe le modem en mode texte pour l'envoi de sms sock.send("AT+CMGF=1\r") sock.send("AT+CMGS=\"%s\"\r" % dest) # chr(032) -> ctrl + Z, séparateur de fin de sms sock.send("%s%s" % (text,chr(032))) #fermer la connexion sock.close() print "message bien envoyer" else: print 'aucun périphérie trouver'

Voila j’espere que vous y trouverais votre compte toutes remarques et améliorations du scripts est la bienvenue
🙂
be free be linux!!!

Publié dans Langages, Linux, Python

Script python pour redemarrer votre modem-routeur speedtouch


Suite aux nombreuses défaillances de la connexion internet fournit par mon FAI j’était souvent obligé d’aller redémarrer le modem-routeur(SpeedTouch 530) qui n’était pas dans ma chambre ce qui était ennuyant et les fatiguants vas-et-vient j’en pouvais plus 🙂 donc il m’est venu l’idée de créer un script en Python(the best 🙂 ) qui  le redémarre à distance 😛 j’espère qu’il vous sera utile et toute suggestion est la bienvenue 😉

!/usr/bin/env python
#importer le module pexpect et le module sys
import pexpect
import sys

#creer notre object de connexion
cnx=pexpect.spawn('telnet 192.168.1.254')

#creation du fichier mylog pour voir le comportement du script
fout = file('/tmp/mylog.txt','w')
cnx.logfile = fout

#recuperer le login et le mot de passe
cnx.expect('Username :')
cnx.sendline('Administrator\r')
cnx.expect('Password :')
cnx.sendline('Administrator\r')

#recuper le prompt

cnx.expect('=>')

#entre le commande pour redemarrer le modem

cnx.sendline(":system reboot\r")

#fermer la connexion
cnx.close

PS:par défaut le module pexpect n’est pas installé
pour l’installer

 wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz
 tar xzf pexpect-2.3.tar.gz
 cd pexpect-2.3
 sudo python ./setup.py install