Python
Setuptools
Deux methodes pour utiliser setuptools
:
setup.py
classique (documentation)setup.py
avec méthodesetup()
vide et unsetup.cfg
contenant toutes les confs (documentation)
!!! warning: Utiliser from setuptools import setup
et plus from distutils import setup
dans le setup.py !
Pip
Répertoire d'install des packages (ces flags sont bien sûr mutuellement exclusifs)
commande | install dir |
---|---|
pip install --user |
~/.local/lib/pythonx.x/site-packages |
pip install -t ./toto |
./toto |
pip install |
/usr/local/lib/pythonx.x/dist-packages |
Voir les répertoires d'install des pacakges:
pip show redis
pip list -v
:
utf-8
https://blog.emacsos.com/unicode-in-python.html
les string unicode ont un type unicode
0) pour éviter de mettre u'blabla'
devant chaque string pour avoir des unicode string en python 2.7
1 | from __future__ import unicode_literals |
1) pour traiter l'unicode en interne, il faut déclarer l'encoding dans le fichier .py
1 | # coding=utf-8
|
ne pas oublier que quand un string unicode est mis dans un container (ex: une liste), python le représentera dans le stdout en hexa.
2) pour ecrire dans un fichier, il faut encoder en utf-8 afin de récupérer un type str
1 2 | with open("urls.txt", "w") as file: file.write("日光灯".encode('utf-8')) |
Passage par référence
1 2 3 4 5 6 7 | def something(array): array.append("two") array = ["three","four"] array = ["one"] something(array) print array |
Il sera affiché ["one", "two"]
. L'assignation de variable est locale
1 2 3 4 5 6 | matrix = [] row = [0, 0] for i in range(2): matrix.append(row) matrix[1][1] = 1 print matrix |
Il sera affiché: [[0,1], [0,1]]
car on modifie le meme objet passé par reference
Inspect.getmembers() vs dir()
dir(Class)
donne la liste des fonctions
inspect.getmembers(Class)
donne la liste des fonctions avec leurs arguments
python 2 vs python 3
fstrings
Easiest method ever for string rendering
1 2 | myvar = 1234 f'myvar is {myvar}' |
on peut mettre des expressions dans le string
1 2 | myvar = 1234 f'myvar is {myvar+200}' |