Diffuse установлен на моей рабочей станции и хорошо работает с Mercurial, поэтому я часто использую его для разграничения. Тем не менее, я также использую виртуальный виджет Python для использования некоторых разных модулей в более контролируемой настройке (проще отправить другим людям). Когда я пытаюсь запустить Diffuse из моего virtualenv (здесь называется sandbox), он pukes:
(sandbox)nickt@aiguadassi:/home/codes/nickt/Tape-Worms/Code
$ diffuse bread.py # fail...
Traceback (most recent call last):
File "/usr/bin/diffuse", line 124, in <module>
import pygtk
ImportError: No module named pygtk
Снаружи он работает просто отлично ...
(sandbox)nickt@aiguadassi:/home/codes/nickt/Tape-Worms/Code
$ deactivate
nickt@aiguadassi:/home/codes/nickt/Tape-Worms/Code
$ diffuse bread.py # works fine.
Предполагаю Diffuse - приложение Python и полагается на поиск модулей в среде; есть ли способ использовать глобальную среду (например, через псевдоним)? Я не уверен, что программа делает в отношении среды ... это поиск через PATH для модулей, пытаясь использовать все, что which python появляется ...
Если первая строка из /usr/bin/diffuse выглядит так:
#!/usr/bin/env python
, она будет запущена в Python внутри вашего виртуального. Большинство приложений Python должны установить его на:
#!/usr/bin/python
, который запустит его с помощью системы Python. Если это неверно, это может быть ошибка в Diffuse или в его упаковке в Debian / Ubuntu.