Não é possível instalar o blockdiag

2

Estou tentando instalar uma ferramenta UML de python chamada blockdiag por meio deste comando:

sudo easy_install blockdiag

Recebo o seguinte erro e não consigo descobrir como corrigi-lo. Eu recebi este tipo de erro pela primeira vez e gostaria de saber se você seria gentil o suficiente para me deixar também saber como solucionar esses erros.

Reading http://effbot.org/zone/pil-changes-115.htm
Download error: [Errno -2] Name or service not known -- Some packages may not be found!
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tx4P54/PIL-1.1.7/egg-dist-tmp-F4vgBr
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
_imaging.c:75:20: error: Python.h: No such file or directory
In file included from libImaging/Imaging.h:14,
                 from _imaging.c:77:

Link para log e erro de instalação completa

    
por Animesh 08.04.2012 / 08:39

1 resposta

4

Você tem o pacote python-dev instalado? É daí que vem o Python.h.

Estes são os passos para descobrir esta informação por si próprio:

Execute apt-file search Python.h para encontrar todos os pacotes que fornecem arquivos com Python.h em seus nomes (você pode ter que instalar o apt-file primeiro). Isso lista muitos pacotes, mas a maioria fornece arquivos como Symbol-Tables-In-Python.html . Os únicos pacotes que fornecem um arquivo Python.h são os pacotes pythonX.X-dbg e pythonX.X-dev. Agora, os pacotes -dbg contêm a versão de depuração dos programas, enquanto o -dev contém arquivos de desenvolvimento, como os arquivos de cabeçalho C, e o Python.h é um desses arquivos.

Isto reduz a lista de pacotes para python2.6-dev, python2.7-dev e python3.2-dev. Uma forma de verificar qual destas versões é a canônica é simplesmente remover o número da versão do nome do pacote e verificar se existe: apt-cache show python-dev :

Package: python-dev
Priority: optional
Section: python
Installed-Size: 32
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Matthias Klose <[email protected]>
Architecture: all
Source: python-defaults
Version: 2.7.2-7ubuntu2
Depends: python (= 2.7.2-7ubuntu2), python2.7-dev (>= 2.7.2-3~)
Filename: pool/main/p/python-defaults/python-dev_2.7.2-7ubuntu2_all.deb
Size: 1008
MD5sum: d8ef295ca23c3f46298daaa0ccb25403
SHA1: 057d3802fb2afb2a4f85906d65fcb2589568a377
SHA256: 1f5340056e70d6ff573e43f42365b1fd96cee7870ec6ed42c3be4eba6216a092
Description-en: header files and a static library for Python (default)
 Header files, a static library and development tools for building
 Python modules, extending the Python interpreter or embedding Python
 in applications.
 .
 This package is a dependency package, which depends on Debian's default
 Python version (currently v2.7).
Homepage: http://www.python.org/
Description-md5: 93a1917c3f17606b40377d0b737c6c92
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

A linha Depends: mostra que ele instalará o python2.7-dev, assim você pode instalar o python-dev.

Como eu já tinha os pacotes corretos instalados, eu poderia usar locate Python.h e, em seguida, dpkg -S /usr/include/python2.7/Python.h para encontrar o pacote que contém Python.h.

    
por daniel kullmann 08.04.2012 / 09:34