6

我正在尝试设置一个用 python 编写的外部程序/库 - 在 debian 挤压上。

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

  1. 我认为 virtualenv 和 path 是一样的,所以我写了一个 .pth 在启动时加载。它解决了一些错误,但不是全部。
  2. 我已经读过 use export in~/.bashrc但我不确定它是在 virtualenv 中读取的,即使我不使用这个 virtualenv,我也不希望读取这些导出。
  3. 我也读过使用 export in 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.

注意:我已经搜索过,autoenv combine virtualenvwrapper 似乎提供了一个答案,但我宁愿不使用外部程序。

4

2 回答 2

10

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

OPUS_HOME="some value"
export OPUS_HOME

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

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

env | grep OPUS_HOME
于 2013-06-06T18:31:12.510 回答
0

嗯,也许使用:

~virutalenv/bin/python opus.py
于 2012-11-05T13:41:39.050 回答