2014-12-10 13 views
7

Ho un sito Web ospitato allo Heroku e ora desidero utilizzare il pacchetto python-qrtools che utilizza lo ZBar bar code scanner. Su una debian regolare (base) non posso fare un semplice:Come installare i collegamenti Python provenienti da un pacchetto apt?

sudo apt-get install python-qrtools 

Secondo il comando dpkg-query -L python-qrtools, questo installa il seguente:

/usr/lib/python2.7/dist-packages/qrtools-1.2.egg-info 
/usr/lib/python2.7/dist-packages/qrtools.py 
/usr/share/doc/python-qrtools/copyright 
/usr/share/doc/python-qrtools/changelog.Debian.gz 

Quando guardo le importazioni di qrtools.py, lo fa anche uno import zbar, che è (per quanto ho capito) il binding python per il pacchetto Zbar (Pypi link here). Sono piuttosto sorpreso che zbar o i suoi collegamenti Python non siano nella lista con il pacchetto apt python-qrtools. Quindi, la mia prima domanda:

Quando e dove è installato questo pacchetto zbar?

Passando a Ho deciso di installare ZBar e il binding Python per esso su Heroku. Sono riuscito ad installare ZBar usando this ZBar buildpack quindi ho solo bisogno di installare il binding di Python zbar. Dalla riga di comando python Vedo già che si tratta di un originario vincolante da un file .so:

>>> import zbar 
>>> zbar.__file__ 
'/usr/lib/python2.7/dist-packages/zbar.so' 

Così ho fatto un semplice sudo pip install zbar, che si traduce purtroppo in un errore di compilazione enorme che ho incollato qui di seguito. Quindi la mia domanda principale è in realtà la seguente:

Come si installano le associazioni Python zbar separatamente (quindi senza apt)? Tutti i suggerimenti sono ben accetti!

Downloading/unpacking zbar 
    Downloading zbar-0.10.tar.bz2 
    Running setup.py (path:/tmp/pip_build_root/zbar/setup.py) egg_info for package zbar 

Installing collected packages: zbar 
    Running setup.py install for zbar 
    building 'zbar' extension 
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c zbarmodule.c -o build/temp.linux-x86_64-2.7/zbarmodule.o 
    In file included from zbarmodule.c:24:0: 
    zbarmodule.h:26:18: fatal error: zbar.h: No such file or directory 
    #include <zbar.h> 
        ^
    compilation terminated. 
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/zbar/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-zIuGzw-record/install-record.txt --single-version-externally-managed --compile: 
    running install 

running build 

running build_ext 

building 'zbar' extension 

creating build 

creating build/temp.linux-x86_64-2.7 

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c zbarmodule.c -o build/temp.linux-x86_64-2.7/zbarmodule.o 

In file included from zbarmodule.c:24:0: 

zbarmodule.h:26:18: fatal error: zbar.h: No such file or directory 

#include <zbar.h> 

       ^

compilation terminated. 

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

Così ho provato a installare lo zbar Python vincolante separatamente utilizzando

Purtroppo non mi sembra nemmeno di essere in grado di installare il pacchetto zbar su linux

risposta

8
sudo apt-get install libzbar-dev 
sudo pip install zbar 

solito è un pacchetto -dev che ti manca quando ottieni questo tipo di errori, un modo semplice per trovare il pacchetto è apt-cache search come di seguito:

~$ apt-cache search zbar 
libbarcode-zbar-perl - bar code scanner and decoder (Perl bindings) 
libzbar-dev - bar code scanner and decoder (development) 
libzbar0 - bar code scanner and decoder (library) 
libzbargtk-dev - bar code scanner and decoder (GTK+ bindings development) 
libzbargtk0 - bar code scanner and decoder (GTK+ bindings) 
libzbarqt-dev - bar code scanner and decoder (Qt bindings development) 
libzbarqt0 - bar code scanner and decoder (Qt bindings) 
python-qrtools - high level library for reading and generating QR codes 
python-zbar - bar code scanner and decoder (Python bindings) 
python-zbarpygtk - bar code scanner and decoder (PyGTK bindings) 
zbar-dbg - bar code scanner and decoder (debug) 
zbar-tools - bar code scanner and decoder (utilities) 

FWIW, la procedura che ho usato per installare era python-qrtools, libzbar-dev e infine pip install zbar.

+0

Grazie mille! Solo una nota sulla tua ultima riga: apt-getting 'python-qrtools' È EQUAL TO ottenere-get' zbar-tools', 'libzbar-dev' e' python-zbar'. Quindi gli ultimi tre sostituiscono il primo. Ma di nuovo; Grazie mille! – kramer65

+0

@ kramer65, non preoccuparti, non hai già installato python-qrtools? Ho dovuto installare 'libzbar-dev' per rimuovere l'errore. –

+0

Sì, ho già installato python-qrtools, ma ho appena attivato un paio di VM per provarlo su nuove installazioni .. :). In questo momento sto provando a installarlo su heroku usando heroku-buildpack-apt, nel quale fallisco miseramente. Non voglio inviarti spam, ma se hai anche un'idea per la mia nuova domanda, ti sarei estremamente grato: http://stackoverflow.com/questions/27425981/why-dont-these-apt-packages-behave- the-same-on-ubuntu-and-heroku – kramer65

Problemi correlati