如何让 diff 与 Python 虚拟环境良好配合?

如何让 diff 与 Python 虚拟环境良好配合?

Diffuse 安装在我的工作站上,与 Mercurial 配合得很好,所以我经常用它来比较差异。但是,我也使用 Python 虚拟环境在更受控制的设置中使用一些不同的模块(更容易发送给其他人)。当我尝试从我的虚拟环境(此处名为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

外面一切运转正常......

(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出现的任何内容...

答案1

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

#!/usr/bin/env python

它将在你的虚拟环境中以 Python 运行。大多数 Python 应用程序应将其设置为:

#!/usr/bin/python

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

答案2

~/.bashrc另一个选择是向您的文件添加别名:

alias diffuse='/usr/bin/python /usr/bin/diffuse'

这可以防止在更新漫反射时发生故障。

相关内容