web-dev-qa-db-fra.com

Impossible d'importer les packages installés dans python

J'ai installé pip (pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)). Ma version python est 2.7.

J'ai installé pygame de apt-get install python-pygame et j'ai reçu un message de réussite. Mais quand j'essaie de l'importer dans python, je reçois le message suivant:

ashish@Ashish-Notebook:~$ python
Python 2.7.11 (default, Jun  6 2016, 07:21:54) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygame
>>> 

De même, j'ai installé Beautiful Soup de pip install BeautifulSoup et ne peux l'importer nulle part. De plus, lorsque j'essaie à nouveau d'installer, je reçois le message suivant:

Requirement already satisfied (use --upgrade to upgrade): BeautifulSoup in /usr/local/lib/python2.7/dist-packages
Cleaning up...
ashish@Ashish-Notebook:~$

De plus, quand je reçois une liste des paquets installés (par liste de pip). Je peux voir pygame et beautifulsoup dans cette liste.

4
A.Gautam

Le problème est que lorsque vous installez des objets avec Sudo apt-get install (ou Sudo pip install), ils s’installent à des emplacements dans /usr, mais le python que vous avez compilé à partir de la source s’est installé dans /usr/local. Le python que vous finissez par exécuter lorsque vous tapez pythonà l'invite est celui que vous avez compilé (en fonction du résultat de la commande python -c 'import sys; print(sys.path)'), et il ne trouve pas le python packages installés dans le répertoire /usr. Cependant, Ubuntu est livré avec python (python 2 et python 3) déjà installés à l'emplacement correct, où il trouvera les packages installés. Il est donc généralement recommandé de ne pas mélanger les méthodes d'installation de ce type. Ubuntu propose de nombreux packages logiciels disponibles dans les référentiels officiels, ce qui évite de devoir vous-même beaucoup compiler, et il est généralement recommandé d'installer le logiciel via apt lorsque cela est possible.

Cela dit, pour python paquets (comme Pygame et Beautiful Soup), les choses peuvent devenir un peu plus compliquées compliquées . Le fait de mélanger pipet apt-get peut causer des problèmes sur la route. Par conséquent, une approche simple consiste à s'en tenir au gestionnaire de packages système. Si vous devez utiliser pip parce que le gestionnaire de paquets n'a pas tout ce dont vous avez besoin (ou des versions à jour), il est préférable de travailler dans environnements virtuels et d'utiliser pip pour tous les python paquets dont vous avez besoin dans cet environnement virtuel.

Pour indiquer à votre système de trouver le système par défaut python (python 2, qui est la valeur par défaut lorsque vous appelez simplement pythonname__), essayez de réécrire le lien symbolique qui achemine la commande pythonà l'invite de la destination d'origine:

Sudo ln -s /usr/bin/python2.7 /usr/bin/python

J'espère que cela devrait lui permettre de trouver les packages python que vous avez installés.

4
muon