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

Tou*_*uki 5 python environment-variables virtualenv

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

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

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

我正在尝试安装Opus和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.
Run Code Online (Sandbox Code Playgroud)

NB.:我已经搜索过,autoenv结合virtualenvwrapper似乎提供了答案,但我宁愿不使用外部程序.

Mic*_*jer 8

如果你加入 opus-env/bin/activate

OPUS_HOME="some value"
export OPUS_HOME
Run Code Online (Sandbox Code Playgroud)

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

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

env | grep OPUS_HOME
Run Code Online (Sandbox Code Playgroud)


swi*_*tyy 0

嗯,也许使用:

~virutalenv/bin/python opus.py
Run Code Online (Sandbox Code Playgroud)