2012-08-05 1 views
5

Ho installato il pacchetto python-gconf su Ubuntu 12.04 e ho giocato con esso: è un collegamento Python allo strumento di configurazione di gnome e non esiste un pacchetto pypi per questo.Come forzare il mio virtualenv a vedere questo modulo compilato installato a livello di sistema?

Appena ho creato un virtualenv (senza--no-site-packages), ogni tentativo di importare gconf porterebbe a ImportError.

Il modulo gconf funziona correttamente a livello di sistema, ma non nell'ambiente virtuale. Ho investigato e aprendo python-gconf.deb mi ha insegnato che è solo un binario gconf.so.

Ricerca di esso mi dice che è stato installato in /home/lib/python2.7/dist-packages/gtk-2.0/gconf.so

ho provato a forzare Python mani:

sudo ln -s /usr/lib/python2.7/dist-packages/gtk-2.0/gconf.so ~/.virtualenvs/appetizer/lib/python2.7/site-packages/ 

Ma si è tradotto solo in:

>>> import gconf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: could not import gobject (error was: 'No module named gobject') 

Così sto indovinando che è molto dipendente a GTK.

+0

fa la versione di virtualenv hanno '--system-site-packages'. '--no-site-packages' è obsoleto. – jfs

+0

Grazie J.F. Questo era il problema. Dovresti scriverlo come risposta in modo da poterti invogliare. –

risposta

4

È necessario creare il virtualenv utilizzando l'opzione --system-site-packages per rendere visibili tutti i pacchetti di sistema. Il collegamento simbolico di pacchetti esterni nella struttura di virtualenv funziona anche per la maggior parte delle situazioni quando è necessario un solo pacchetto esterno.

+0

Rep facile, amico :-) –

0

Se è già stato creato il proprio ambiente virtuale, è sufficiente rimuovere il file no-global-site-packages.txt da esso per farlo vedere pacchetti di sistema.