【问题标题】:Django virtualenv deployment configurationDjango virtualenv 部署配置
【发布时间】:2011-03-28 14:05:28
【问题描述】:

我最近开始使用 virtualenvwrapper 并创建了

mkdir ~/.virtualenvs
mkvirtualenv example.com

Virtualenvwarpper 自动在 ~/.virtualenv 下创建一个名为 example.com 的 virtualenv 所以这是所有 virtualenvs 的中心容器。 之后我通过 pip 安装了 django 和其他一些包 我的网站位于

 /srv/www/example.com/public_html/

我必须把我的网站放到 ~/.virtualenv/example.com 如果不是,我如何在 /srv/www/example.com/public_html 下使用我的 example.com virtualenv 和我的网站。 你能告诉我这个部署的 apache mod_wsgi 配置吗? 谢谢

【问题讨论】:

    标签: django mod-wsgi virtualenv virtualenvwrapper


    【解决方案1】:

    阅读:

    http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

    仅使用 site.addsitedir() 可能还不够,因为它不能处理某些排序问题。您最好使用 mod_wsgi 提供的配置指令/选项来添加它们。否则,如果排序成为问题,您需要将代码添加到 WSGI 脚本中,以便根据需要重新排序 sys.path。

    【讨论】:

    • 这对我来说效果很好,但直到我意识到我确实需要这两个部分,即使我想为我的应用程序使用我的基线 virtualenv。因此,您必须在全局 apache 配置中设置“WSGIPythonHome /usr/local/pythonenv/BASELINE”,然后您还必须将 site.addsitedir 命令添加到 .wsgi 脚本的顶部,即使您打算使用您的基线。文档引用了 2.5 的 python 库,但它们现在可能是 2.6:site.addsitedir('/usr/local/pythonenv/BASELINE/lib/python2.6/site-packages')
    • 您不需要在这两个地方都这样做。如果你不得不这样做,那就有别的问题了。
    【解决方案2】:

    在您的 WSGI 脚本中:

    import site
    site.addsitedir('/home/username/.virtualenvs/example.com/lib/python2.5/site-packages')
    

    (根据您的 Python 版本等进行适当调整)

    【讨论】:

    • 这还不够。请参阅格雷厄姆的回答。
    猜你喜欢
    • 2011-01-25
    • 2014-10-11
    • 2021-04-24
    • 2014-10-26
    • 2018-03-26
    • 1970-01-01
    • 2011-01-15
    • 2011-05-04
    • 2020-09-08
    相关资源
    最近更新 更多