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+3Créer et activer un environnement virtuel.
pyvenv-3.5 venv source venv/bin/activate cd venvInstaller
pygobject(pycairodoit 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+3Créer et activer un environnement virtuel.
pyvenv-3.5 venv source venv/bin/activate cd venvInstaller 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.