pygtk
не может быть установлен в вашем virtualenv из PyPI, поэтому
pip install pygtk
будет загружаться, но не устанавливаться. Вы можете пройти через циклы загрузки файлов tar, компилировать и устанавливать их, но если все в порядке, чтобы делать ссылки на соответствующие пакеты, установленные в системе, тогда достаточно активировать вашу virtualenv и установить ruamel.venvgtk
:
pip install ruamel.venvgtk
Это бесстыдная заглушка для моей собственной работы, ни одно из других решений здесь не сработало с повторным созданием virtualenv, как, например, сделано tox
.
В setup.py
пакетов происходит следующее:
try:
import gtk
except ImportError:
print('--------------')
import subprocess
instdir = subprocess.check_output([
'/usr/bin/python',
'-c',
'import os, pygtk; print os.path.dirname(pygtk.__file__)',
]).strip()
for dst_base in sys.path:
if dst_base.strip():
break
for d in [
'pygtk.pth',
'pygtk.py',
'gtk-2.0',
'gobject',
'glib',
'cairo',
]:
src = os.path.join(instdir, d)
dst = os.path.join(dst_base, d)
if os.path.exists(src) and not os.path.exists(dst):
print('linking', d, 'to', dst_base)
os.symlink(src, dst)
то есть системный python спрашивается, где установлен pygtk (в Linux Mint 17.1 это /usr/lib/python2.7/dist-packages
), а затем устанавливаются ссылки на первый путь (ненулевой длины) для активированного питона.