【问题标题】:why can't upstart run 'source bin/activate'?为什么暴发户不能运行'source bin/activate'?
【发布时间】:2013-01-27 04:41:53
【问题描述】:

upstart 出于某种原因不会激活我的 virtualenv。

这就是我的运行方式

script
    # My startup script, plain old shell scripting here.
    cd path/to/env
    source bin/activate
    ....
end script

手动启动时 virtualenv 运行良好

为什么这不起作用?

【问题讨论】:

  • 有可能upstart 不保留连续命令之间的环境吗?您始终可以使用$VIRTUAL_ENV/bin/python ... 直接运行您的应用,而无需激活环境。
  • @millimoose 其中 $VIRTUAL_ENV 是 virtualenv 的路径?
  • 没错,activate 应该设置相同的变量,所以我用它来计算名称会很熟悉。
  • 这似乎也不起作用
  • 您是否收到任何错误消息?

标签: python virtualenv upstart


【解决方案1】:

所以我已经解决了,由于某种原因暴发户不喜欢使用“源”,所以我将行改为:

source bin/activate

. bin/activate

这行得通,但不知道为什么,如果有人能解释一下,我会很感兴趣

【讨论】:

  • 毫无疑问,我已经在 Ubuntu 12.04 上确认了这一点。谢谢
  • 这让我发疯了。如果可以的话,我会给你五票。谢谢!
  • 这个工作的原因是我对这个问题的单独回答。
  • 我都试过了,都没有工作。 (Ubuntu 14.04.1 服务器。)(另外,不尝试获取 bin/activate,只是尝试获取用户的 .bashrc 以获取环境变量,甚至使用完整路径...)
  • 我遇到了 gunicorn 和 upstart 的问题。我发现我需要做的就是将 gunicorn 可执行文件的路径更改为环境的 bin/ 文件夹中的路径。
【解决方案2】:

source 是一个 bash 内置命令,但只是一个 posix“特殊”命令。

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

sh shell 不理解source,只能理解.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2017-07-17
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多