2015-07-09 12 views
11

Sto aggiornando una vecchia applicazione django da python2.7 a python3.4. Durante l'installazione di pygobject via pip, ho ottenuto questo errore:installazione PyGObject via pip in virtualenv

Collecting pygobject 
    Using cached pygobject-2.28.3.tar.bz2 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 
     File "<string>", line 20, in <module> 
     File "/tmp/pip-build-9dp0wn96/pygobject/setup.py", line 272 
     raise SystemExit, 'ERROR: Nothing to do, gio could not be found and is essential.' 
        ^
    SyntaxError: invalid syntax 

    ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9dp0wn96/pygobject 

Sto cercando di installarlo in un virtualenv. Anche l'installazione a livello di sistema non funziona ... Sto lavorando su arch linux con python3.4

Ho installato il pacchetto arch chiamato pygobject-devel 3.16.2-1 ma non riesco ancora a importare gobject python module

Cos'è questo gioioso gio mancante?

Qualsiasi aiuto è il benvenuto ... Grazie in anticipo!

+0

Potrebbe essere che hai solo bisogno di installare gi, ma non sono sicuro su di esso e non può installare PyGObject nel mio virtualenv neanche. – Zelphir

+0

Ok, j Sono riuscito a installare pyGObject, a livello di sistema con un pacchetto precompilato, che è il modo più semplice (extra/python-gobject2). L'errore superiore è un semplice errore di sintassi, perché setup.py per questo pacchetto pip è progettato solo per Windows comunque ... Devo eseguire alcuni test ed esperimenti per riuscire a usarlo in virtualenv. – MicroCheapFx

+1

Secondo [la risposta qui] (http://stackoverflow.com/a/38219461/339144) questo è ora possibile. Non l'ho controllato io stesso. –

risposta

7

RISPOSTA È ORA NEL POST TAGGED IN COMMENTO DI SOPRA !!!! Dai un'occhiata qui =>Python cannot install PyGObject

Ok, ci sono riuscito!

Per installare PyGObject in virtrualenv, rinunciare a pip.

  1. Installare PyGObject a livello di sistema (con il gestore dei pacchetti o compilarlo manualmente). Ad esempio, nel mio caso:

    sudo pacman -Suy python-gobject2 
    
  2. link nel tuo virtualenv:

    ln -s /usr/lib/python3.4/site-packages/gobject* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    
  3. potrebbe essere necessario collegare altri moduli (nel mio caso glib):

    ln -s /usr/lib/python3.4/site-packages/glib* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    

Potresti trovare alcune informazioni utili su installazioni e interazioni tra moduli di sistema e virtualenv qui :

virtualenv: Specifing which packages to use system-wide vs local

+1

Ho fatto vext per automatizzare questo. Se hai pygobject installato nel sistema, puoi installare vext.gi nel virtualenv. –

+0

Thx @StuartAxon, vext è un ottimo helper lil. – fxx

Problemi correlati