Domanda Come installo python3-gi all'interno di virtualenv?


Sto seguendo il Python GTK + 3 tutorial e sto cercando di ottenere un'installazione funzionante in esecuzione in virtualenv. io ho python3-gi installato tramite il gestore di pacchetti di Ubuntu già. Le cose sembrano così:

:~$ mkvirtualenv py3 --python=/usr/bin/python3
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in py3/bin/python3
Also creating executable in py3/bin/python
Installing setuptools, pip...python
done.
(py3):~$ python
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'gi'
>>> 
(py3):~$ deactivate
:~$ /usr/bin/python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> 

Come potete vedere, python3-gi non è ovviamente disponibile in virtualenv, ma non sono sicuro di come installarlo poiché python3-gi è installato tramite il mio gestore di pacchetti e non con pip.


15
2017-10-31 15:42


origine


risposte:


Ora è possibile risolvere questo problema usando Vext. Vext ti consente di installare pacchetti in una virtualenv che accede individualmente ai pacchetti di sistema. Accedere gi, Fare quanto segue:

pip install vext
pip install vext.gi

15
2018-05-05 15:01



Non ho trovato una soluzione adeguata a questo. Quando mi imbatto in situazioni in cui non riesco a ottenere qualcosa da installare direttamente in un virtualenv, lo leggo in un link simbolico e funziona perfettamente (ci sono probabilmente delle eccezioni, ma questo non è uno di questi).

ln -s /usr/lib/python3/dist-packages/gi /path_to_venv/lib/python3.4/site-packages/

Non elegante nel minimo; sembra più bello che dare accesso virtuale a tutti i pacchetti di sistema (via --system-site-packages).


10
2018-04-08 20:55



Questo è quello che ho fatto per ottenere GTK + 3 all'interno di un ambiente virtuale Python 3.5 su OS X 10.11.

  1. Installa GTK + 3 con homebrew.

    brew install gtk+3
    
  2. Crea e attiva un ambiente virtuale.

     pyvenv-3.5 venv
     source venv/bin/activate
     cd venv
    
  3. Installare pycairo sull'ambiente virtuale.

    export PKG_CONFIG_PATH=$VIRTUAL_ENV/lib/pkgconfig
    
    curl -L https://cairographics.org/releases/pycairo-1.10.0.tar.bz2 | tar xj
    cd pycairo-1.10.0
    export ARCHFLAGS='-arch x86_64'
    
    python waf configure --prefix=$VIRTUAL_ENV # It's ok, this will fail.
    sed -i '' '154s/data={}/return/' .waf3-1.6.4-*/waflib/Build.py # Bugfix: https://bugs.freedesktop.org/show_bug.cgi?id=76759
    python waf configure --prefix=$VIRTUAL_ENV # Now it should configure.
    python waf build
    python waf install
    
    unset ARCHFLAGS
    cd ..
    
  4. Installare pygobject sull'ambiente virtuale.

    export PKG_CONFIG_PATH=$VIRTUAL_ENV/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig
    
    curl -L http://ftp.gnome.org/pub/GNOME/sources/pygobject/3.12/pygobject-3.12.2.tar.xz | tar xJ
    cd pygobject-3.12.2
    
    ./configure CFLAGS="-I$VIRTUAL_ENV/include" --prefix=$VIRTUAL_ENV
    make
    make install
    
    cd ..
    
  5. Profitto.

    Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44)
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from gi.repository import Gtk, Gdk, Pango, GObject
    >>> from cairo import ImageSurface, Context, FORMAT_ARGB32
    >>>
    

Python 3.5 scaricato e installato da PSF.


4
2018-06-06 02:28



Ho installato pgi attraverso pip, che può essere un'opzione. Apparentemente è compatibile API con PyGObject e finora sembra funzionare bene in esecuzione Gtk.


3
2017-07-28 21:28



Il nome del pacchetto pip è alquanto controintuitivo: l'uso pip install PyGObject.


0
2018-05-23 11:27