Não é possível importar pacotes instalados em python

3

Eu instalei o pip ( pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)). Minha versão do python é 2.7.

Instalei pygame por apt-get install python-pygame e recebi uma mensagem de sucesso. Mas quando tento importá-lo em python , recebo a seguinte mensagem:

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
>>> 

Da mesma forma, instalei o Beautiful Soup em pip install BeautifulSoup e não posso importá-lo em lugar algum. Além disso, quando tento instalar novamente, recebo esta mensagem:

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

Além disso, quando eu obtenho uma lista de pacotes instalados (por lista de pip). Eu posso ver pygame e beautifulsoup nessa lista.

    
por A.Gautam 14.07.2016 / 04:08

1 resposta

3

O problema é que quando você instala coisas com sudo apt-get install (ou sudo pip install ), elas são instaladas em lugares em /usr , mas o python compilado da fonte foi instalado em /usr/local . O python que você acaba executando quando você digita python no prompt é o que você compilou (baseado na saída do comando python -c 'import sys; print(sys.path)' ), e ele não pode encontrar os pacotes python instalados no diretório /usr . No entanto, o Ubuntu vem com o python (python 2 e python 3) já instalado no local correto, onde encontrará os pacotes instalados. Portanto, uma recomendação geral é tentar não misturar métodos de instalação como este. O Ubuntu tem muitos pacotes de software disponíveis através dos repositórios oficiais, o que elimina a necessidade de fazer muita compilação, e geralmente é recomendado instalar o software via apt quando possível.

Dito isto, para pacotes python (como Pygame e Beautiful Soup), as coisas podem ficar um pouco mais complicado . Misturar pip e apt-get pode causar problemas no futuro, portanto, uma abordagem para manter as coisas simples é ficar apenas com o gerenciador de pacotes do sistema. Se você acabar precisando usar o pip porque o gerenciador de pacotes não tem coisas que você precisa (ou versões atualizadas), é melhor trabalhar dentro de ambientes virtuais e use pip para todos os pacotes python necessários nesse ambiente virtual.

Para dizer ao seu sistema para localizar o python do sistema padrão corretamente (python 2, que é o padrão quando você chama apenas python ), tente reescrever o link simbólico que direciona o comando python para o destino original:

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

Espero que isso permita encontrar os pacotes python que você instalou.

    
por muon 14.07.2016 / 05:48