为什么不能upstart运行'source bin/activate'?

Cal*_*lum 30 python upstart virtualenv

由于某种原因,暴发户不会激活我的virtualenv.

这就是我运行它的方式

script
    # My startup script, plain old shell scripting here.
    cd path/to/env
    source bin/activate
    ....
end script
Run Code Online (Sandbox Code Playgroud)

virtualenv在手动启动时运行正常

为什么这不起作用?

Cal*_*lum 52

所以我已经解决了,出于某些原因,暴发户并不喜欢使用'source'所以我更改了以下行:

source bin/activate
Run Code Online (Sandbox Code Playgroud)

. bin/activate
Run Code Online (Sandbox Code Playgroud)

这有用,但不知道为什么,如果有人可以解释这一点,那么会感兴趣

  • 我试过了两个,但都没有工作.(Ubuntu 14.04.1 Server.)(另外,不要尝试使用bin/activate,只是尝试使用.bashrc来获取env变量,甚至使用完整路径......) (3认同)
  • 这有效的原因在于我对这个问题的单独回答. (2认同)

Jef*_*nez 43

source 是一个bash内置命令,但只有一个posix"特殊"命令.

Upstart sh -e在执行脚本部分时运行.

sh shell不明白source,只.