我怎样才能让漫反射与 Python virtualenv 一起玩得很好?

Nic*_*k T 4 python bash virtualenv

Diffuse 安装在我的工作站上并且可以很好地与 Mercurial 配合使用,所以我经常使用它来进行比较。但是,我也使用 Python virtualenv 在更可控的设置中使用一些不同的模块(更容易发送给其他人)。当我尝试从我的 virtualenv(此处命名为sandbox)中运行 Diffuse 时,它会呕吐:

(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
Run Code Online (Sandbox Code Playgroud)

在外面它工作得很好......

(sandbox)nickt@aiguadassi:/home/codes/nickt/Tape-Worms/Code
$ deactivate 
nickt@aiguadassi:/home/codes/nickt/Tape-Worms/Code
$ diffuse bread.py # works fine.
Run Code Online (Sandbox Code Playgroud)

我假设 Diffuse 是一个 Python 应用程序,并且依赖于在环境中查找模块;有没有办法让它使用“全局”环境(例如通过别名)?我不确定程序对环境做了什么……它是否在 PATH 中搜索模块,尝试使用任何which python出现的东西……

小智 5

如果第一行/usr/bin/diffuse看起来像:

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

它将在您的 virtualenv 中在 Python 中运行。大多数 Python 应用程序应将其设置为:

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

它将使用系统 Python 运行它。如果这是错误的,则可能是 Diffuse 中的错误或其在 Debian/Ubuntu 中的包装中的错误。