Comment résoudre l'erreur pip / Python : "normal site-packages is not writeable"

Le langage Python est aujourd'hui un langage très couramment utilisé dans le développement d'applications pour les systèmes d'exploitation pour ordinateurs. De nombreux logiciels, comme Dropbox ou encore une partie du moteur de recherche Google, l'utilisent. Il arrive donc que vous ayez en même temps plusieurs versions de Python installées sur le système, et des versions de Python liées à d'autres utilisateurs de votre PC. Ce sont les deux principales causes de l'affichage du message d'erreur "normal site-packages is not writeable".

Ce message d'erreur s'affiche quand vous essayez d'utiliser directement PIP, le gestionnaire de paquets intégré avec le langage Python. Ce message provient d'un problème d'autorisation. PIP n'arrive pas à accéder au dossier "sites-packages", qui est celui dans lequel il installe les librairies. Cela peut provenir du fait que Python a été installé par un autre compte utilisateur, ou par un autre logiciel. Une des solutions possibles consiste à utiliser PIP avec la commande "python". L'option "-m" permet d'utiliser un module pour lui envoyer des commandes. Cette option peut résoudre vos problèmes de droits.

# Python 3
python3 -m pip install nom-du-paquet
# Python 2
python -m pip install nom-du-paquet

Une autre cause possible du problème est la présence de versions différentes de Python dans votre ordinateur. Certains logiciels installent la version de Python dont ils ont besoin directement dans le système d'exploitation. Dans ce cas, il est possible d'utiliser comme commande la version de Python dont vous avez besoin, par exemple "python3.9".

# Installation avec la version 3.9 de Python
python3.9 -m pip install nom-du-paquet

Une autre solution qui peut résoudre ce problème est d'utiliser un environnement virtuel. Avec un environnement virtuel, on dispose de sa propre version de Python dans son projet avec les librairies installées dans le répertoire du projet, ce qui résout le problème de permissions. Des outils comme "venv", "poetry" ou encore "anaconda" proposent cette fonctionnalité.

Python