Category Archives: Python

Python: make wheels

Here a simple example to make a whell

First, install wheel package:

nickyvm$: pip install wheel

Then give the package you need offline and where to store it:

nickyvm$: pip wheel --wheel-dir=my_wheeldirectory psycopg2

Finally, to install it from offline:

pip install --use-wheel --user --upgrade --no-index --find-links=path/to/my_wheels psycopg2

Django – standalone script

Par moment, avec une application django tu voudrai créer des scripts en dehors de l’environnement d’exécution django pour automatiser certaines tâches … La mienne étant de générer des données faussement bidons…

S’en suit une recherche sur internet et quelques éléments de réponse :

1.  Un script :

import os
import sys

sys.path.append(“/Users/said/path/monprojet_web/”)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘monprojet_web.settings’

Qui fonctionnera si ta structure du projet n’a pas changé d’un ioata, ou qui plantera à coup sûr si tu as suivi ce tuto. (apps/monapp)

Pour remerdier à ce foutu problème, ajoute cette ligne pour que le script finale ressemble à ça :

import os
import sys

sys.path.append(“/Users/said/path/monprojet_web/”)
sys.path.append(“/Users/said/path/monprojet_web/apps/”)

os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘monprojet_web.settings’

Ensuite pour éviter de réécrire toutes ces lignes, tu peux les incorporer dans un module et faire un import de celui-ci.

A la fin, tu pourra importer tes modèles comme ceci :

import Standalone_django_script

from monapp.models import MaClasse

# Anything you want:
print MaClasse.objects.all()

Sinon une des solutions les plus sympa, c’est d’utiliser django-extensions, avec sa commande runscript. Allez c’est par ici

Pour résumer :

1 – Installer l’extension et ajouter l’application au fichier settings.py
2 – Créer un repertoire “scripts” et un fichier “__init__.py” dans ce répertoire
3 – Crée ton script dans le répertoire “scripts”. Sache que chaque fichier doit posséder une méthode “run” qui est le point d’entrée.
4 – “python manage.py runscript monscript” sans l’extension “py”

Et j’oubliais, pour générer mes données, j’utilise model-mommy

Enjoy !