Comment installer python3-gi dans virtualenv?
je suis le Python GTK+ 3 Tutorial et j'essaie d'obtenir une installation qui fonctionne dans virtualenv. J'ai python3-gi installé par le gestionnaire de paquets Ubuntu. Voir les choses comme ceci:
:~$ 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
>>>
comme vous pouvez le voir, python3-gi n'est évidemment pas disponible dans virtualenv mais je ne sais pas comment l'installer puisque python3-gi est installé par mon gestionnaire de paquets et pas avec pip.
5 réponses
gi
, procédez de la manière suivante:
pip install vext
pip install vext.gi
Je n'ai pas trouvé de solution appropriée à cela. Quand je rencontre des situations où je ne peux pas obtenir quelque chose à installer directement dans un virtualenv, je le mets en lien symbolique et il fonctionne bien (il y a probablement des exceptions, mais ce n'est pas l'une d'entre elles).
ln -s /usr/lib/python3/dist-packages/gi /path_to_venv/lib/python3.4/site-packages/
pas du tout élégant; semble plus agréable que de donner au virtualenv un accès complet à tous les paquets système (via --system-site-packages
).
mise à Jour 2018
Il semble que vous pouvez maintenant installer pygobject
et pycairo
avec PIP sur macOS.
installer GTK+ 3 avec Homebrew.
brew install gtk+3
Créer et activer un environnement virtuel.
pyvenv-3.5 venv source venv/bin/activate cd venv
Installer
pygobject
(pycairo
doit venir comme une dépendance).ARCHFLAGS="-arch x86_64" pip install pygobject
Origine répondre à
C'est ce que j'ai fait pour obtenir GTK+ 3 dans un environnement virtuel Python 3.5 sur OS X 10.11.
installer GTK+ 3 avec Homebrew.
brew install gtk+3
Créer et activer un environnement virtuel.
pyvenv-3.5 venv source venv/bin/activate cd venv
Installer pycairo sur l'environnement virtuel.
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 ..
Installer pygobject sur le environnement virtuel.
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 ..
Profit.
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 téléchargé et installé de PSF.
j'ai installé pgi
par pip
, qui peut être une option. Il est apparemment API compatible avec PyGObject
et pour l'instant semble fonctionner ok running Gtk
.
le nom du paquet pip est quelque peu contre-intuitif-utilisez pip install PyGObject
.