2016-10-03 2 views
0

J'ai récemment commencé à avoir des problèmes en utilisant pip pour installer les paquets python. J'ai toujours utilisé pip mais jamais vraiment compris comment cela fonctionne réellement, mon expérience avec elle est essentiellement limitée à "pip installer pkg".Je suis confus par les installations pip

Récemment, en essayant d'installer openCV sur ma machine, j'ai suivi quelques guides qui impliquaient de changer de chemin, etc. Depuis que j'ai fait ces changements, j'ai eu du mal à utiliser pip pour installer correctement les paquetages. Maintenant que je lance "pip3 install pkg", l'installation fonctionne correctement sans erreur. Cependant, lorsque j'essaie d'importer le module en python, python ne trouve pas le paquet. Si je lance "pip3 list" dans le terminal, j'obtiens une liste de modules qui est différente de l'aide courante ("modules") dans python.

Je pense que pip installe les paquets à un emplacement différent de celui que ma version de python fait référence lors de l'importation de modules?

Y a-t-il un moyen de changer l'endroit où installer pip? Qu'est-ce que cela signifie de changer de chemin et comment puis-je éviter cela dans le futur?

Merci d'avance.

EDIT: Je dois mentionner que l'exécution de "python3 -m pip install pkg" installe les paquets correctement.

+2

Vous pouvez essayer ceci, c'est isoler vos paquets python par rapport à chaque projet https://virtualenv.pypa.io/en/stable/ –

+0

vous avez probablement installé python2 et python3? Votre appel 'pip' appelle la version python2 –

+0

J'ai installé python2 et python3, cependant j'appelle pip3 plutôt que pip lors de l'installation. –

Répondre

0

Parce que vous avez 2 versions de Python installées, la meilleure solution consiste à installer et à utiliser virtualenv

un environnement virtuel est un outil pour garder toutes les dépendances requises par différents projets et versions de python dans des endroits séparés. Il résout le problème que vous avez mentionné et maintient votre répertoire de paquets de site gérable.