Python-Paket global installiert, aber nicht in einem virtuellen Env (PyGTK)
Ich habe einige seltsame Probleme mit PyGTK in "virtualenv". gtk importiert nicht in mein virtualenv, während es in meine globale Python-Installation importiert. (Ich hatte letzte Woche dieses spezielle Problem nicht, da ich davon ausgegangen bin, dass ein Software-Update etwas verärgert hat.)
Gibt es eine gute Möglichkeit, dieses Problem zu beheben?
Hier gezeigt: GTK global importieren,
tom@zeppelin:~$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
>>> gtk
<module 'gtk' from '/usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.pyc'>
und dann nicht zu importieren GTK,
tom@zeppelin:~$ workon py27
(py27)tom@zeppelin:~$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gtk
Leider hat dies meine ipython - pylab-Umgebung beschädigt:http://pastebin.com/mM0ur7Hc
UPDATE: Ich konnte das beheben, indem ich symbolische Links hinzufügte, wie von grepic / this thread vorgeschlagen:Python: virtualenv - gtk-2.0
mit einem kleinen unterschied, nämlich dass sich mein "cairo" paket in befindet/usr/lib/pymodules/python2.7/cairo/
eher als in/usr/lib/python2.7/dist-packages/cairo
.
ZWEITES UPDATE: Ich fand es auch nützlich, die folgenden Zeilen zu meinem hinzuzufügenvenv/bin/activate
:
export PYTHONPATH=$PYTHONPATH:/home/tom/.virtualenvs/py27/lib/python2.7/dist-packages
export PYTHONPATH=$PYTHONPATH:/home/tom/.virtualenvs/py27/lib/python2.7/dist-packages/gtk-2.0
export PYTHONPATH=$PYTHONPATH:/usr/lib/pymodules/python2.7/gtk-2.0
(Ich vermute, dass eines oder mehrere davon unnötig sind, aber ich habe zu lange damit herumgespielt und beschlossen, die Untersuchung einzustellen. Mein Setup funktioniert jetzt und ich bin zufrieden.)
Problem gelöst! Vielen Dank an alle.