如何使用virtualenv设置环境变量?

时间:2012-11-05 11:17:55

标签: python environment-variables virtualenv

我正在尝试设置一个用python编写的外部程序/ lib - 关于debian squeeze。

当我尝试启动“环境变量未设置”时我得到的错误 - 这是开发人员的异常抛出。所以我想,我必须定义它,但在哪里?

  1. 我认为virtualenv和路径是一样的,所以我在发布时加载了.pth。它解决了一些错误,但不是全部。
  2. 我在~/.bashrc中读过使用导出,但我不确定它是否在virtualenv中读取,即使我不使用这个virtualenv,我也不希望这些导出被读取。
  3. 我也读过在virtualenv/bin/activate中使用导出,但它似乎无法正常工作。
  4. 我正在尝试安装Opus and Urbansim

    以下是我发布时的内容:

    (opus-env)touki@touki:~/Projects/opus-env$ ./src/opus_gui/opus.py  
    Traceback (most recent call last):
      File "./src/opus_gui/opus.py", line 14, in <module>
        from opus_gui.main.controllers.opus_gui_configuration import OpusGuiConfiguration  
      File "/home/touki/Projects/opus-test/src/opus_gui/main/controllers/opus_gui_configuration.py", line 12, in <module>
        from opus_core import paths  
      File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 44, in <module>
        OPUS_HOME = _safe_getenv('OPUS_HOME', _get_default_opus_home)  
      File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 33, in _safe_getenv
        return os.environ[key] if key in os.environ else default_func()  
      File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 36, in _get_default_opus_home  
        raise Exception('OPUS_HOME environment variable must be set.') 
    Exception: OPUS_HOME environment variable must be set.
    
    NB:我已经搜索过,autoenv结合virtualenvwrapper似乎提供了答案,但我不想使用外部程序。

2 个答案:

答案 0 :(得分:7)

如果您添加到opus-env/bin/activate

OPUS_HOME="some value"
export OPUS_HOME

应该有效(你的解决方案3)。当然,它不会应用于当前正在运行的进程。

尝试退出当前的virtualenv shell会话,启动新的shell会话,在该新会话中激活已修改的virtualenv。 在开始程序之前,请验证环境:

env | grep OPUS_HOME

答案 1 :(得分:0)

嗯,也许可以使用:

~virutalenv/bin/python opus.py