FAQ#
Comment éviter sys.path.append… quand on développe un module ?
Lorsqu’on développe un module,
on ne veut pas l’installer. On ne veut pas qu’il soit présent dans le répertoire site-packages
de la distribution
de Python car cela introduit deux versions : celle qu’on développe et celle qu’on a installer.
Avant, je faisais cela pour créer un petit programme utilisant mon propre module
(et on en trouve quelque trace dans mon code) :
import sys
sys.path.append("c:/moncode/monmodule/src")
import monmodule
Quand je récupère un programme utilisant ce module, il me faudrait ajouter ces petites lignes à chaque fois et c’est barbant. Pour éviter cela, il est possible de dire à l’interpréteur Python d’aller chercher ailleurs pour trouver des modules en ajoutant le chemin à la variable d’environnement PYTHONPATH. Sous Windows :
set PYTHON_PATH=%PYTHON_PATH%;c:\moncode\monmodule\src
(entrée originale : faq_python.py:docstring of teachpyx.faq.faq_python.python_path, line 1)
Obtenir des informations sur les packages installés
Le module pip retourne des informations sur n’importe quel module installé, sa version, sa license
pip show pandas
On peut également l’obtenir depuis l’interpréteur python
import pip
pip.main(["show", "pandas"])
Exemple
Name: pandas
Version: 0.16.0
Summary: Powerful data structures for data analysis, time series,and statistics
Home-page: http://pandas.pydata.org
Author: The PyData Development Team
Author-email: pydata@googlegroups.com
License: BSD
Location: c:\python35_x64\lib\site-packages
Requires: python-dateutil, pytz, numpy
On utilise également pip freeze
pour répliquer l’environnement
dans lequel on a développé un programme. pip freeze
produit la liste des modules avec la version utilisée
docutils==0.11
Jinja2==2.7.2
MarkupSafe==0.19
Pygments==1.6
Sphinx==1.2.2
Ce qu’on utilise pour répliquer l’environnement de la manière suivante
pip freeze > requirements.txt
pip install -r requirements.txt
Cette façon de faire fonctionne très bien sous Linux mais n’est pas encore opérationnelle sous Windows à moins d’installer le compilateur C++ utilisée pour compiler Python.
(entrée originale : faq_python.py:docstring of teachpyx.faq.faq_python.list_of_installed_packages, line 3)
Récupérer la liste des modules installés
Le module pip permet d’installer de nouveaux modules mais aussi d’obtenir la liste des packages installés
pip list
On peut également l’obtenir depuis l’interpréteur python
import pip
pip.main(["list"])
(entrée originale : faq_python.py:docstring of teachpyx.faq.faq_python.information_about_package, line 3)