【问题标题】:Deploying flask app in a subfolder on WebFaction在 WebFaction 的子文件夹中部署烧瓶应用程序
【发布时间】:2012-11-04 23:39:46
【问题描述】:

我一直按照这里的说明进行操作:http://flask.pocoo.org/snippets/65/

但是有些东西写的不是很清楚。

所以我的结构是这样的:

/<username>/webapps/flask/
----__init__.py
/<username>/webapps/flask/htdocs/
----index.py
----config.py
----/app/     (this is my flask application where i have views.py).
----/tmp/

我的__init__.py:

class WebFactionMiddleware(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        environ['SCRIPT_NAME'] = '/app'
        return self.app(environ, start_response)

app.wsgi_app = WebFactionMiddleware(app.wsgi_app)

我的index.py:

从烧瓶导入应用程序作为应用程序

我的httpd.conf:

WSGIPythonPath /home/<username>/webapps/flask/htdocs/
#If you do not specify the following directive the app *will* work but you will
#see index.py in the path of all URLs
WSGIScriptAlias /app /home/<username>/webapps/flask/htdocs/index.py

<Directory /home/<username>/webapps/flask/htdocs>
    AddHandler wsgi-script .py
    RewriteEngine on
    RewriteBase /app
    WSGIScriptReloading On
</Directory>

我从控制面板安装为“wsgi 3.4/Python2.7”,但我必须使用easy-install2.6 安装在SSH SQLAlchemy、flask-login 等中,因为easy-install2.7 不存在。

服务器错误日志说:

 from flask import app as application
[Sun Nov 04 23:29:12 2012] [error] [client 127.0.0.1] ImportError: No module named flask

(我确实重启了 apache2)

【问题讨论】:

    标签: python flask webfaction


    【解决方案1】:

    嗯,错误消息清楚地表明您没有安装 Flask。如果您在 webfaction 控制面板中为 Python 2.7 创建了应用程序,那么您还需要为 Python 2.7 安装所有库和 Flask 本身。你说你用easy_instal2.6安装了所有东西,所以这意味着你为Python 2.6安装了所有东西。

    我会说首先为 Python 2.7 安装所有的 libs 和 deps(flask),然后再试一次。另外我建议开始使用 virtualenv,因为它有助于以后不要弄乱软件包版本(一些关于如何在 webfaction http://manavgoel.net/blog/post/2012/7/Deploying-flask-website-on-webfaction 上部署 virtualenv 的简短信息)。

    【讨论】:

    • 是的,我同意你的分析,但问题是。我安装了 wsgi3.4/Python2.7,但它没有出现在我的 FTP 库中。这就是为什么easy_install2.7不起作用的原因,不知何故,应该有的时候没有Python2.7。
    • 你的默认 Python 是什么?当您在服务器上运行 python 时,它会打印出什么版本?也许您的默认值是 2.7,这就是为什么没有带有特定版本的 easy_install 的原因?
    • 好的,在另一个论坛上我想通了一点。显然,我要为 python2.7 创建一个文件夹,然后使用 easy_install-2.7,它可以工作。如果您不创建那个空文件夹,它就不起作用。多么令人困惑...
    • 令人困惑,真的......我会说 - 向 webfaction 报告,也许他们会修复它,它会在未来为其他人节省时间:)
    • 会做的,很抱歉迟到的最佳答案。虽然我还没有安装一个完全成功的烧瓶应用程序没有问题(现在我遇到了蓝图问题)。
    【解决方案2】:

    查看https://community.webfaction.com/questions/12718/installing-flask

    确保按照链接中的相应步骤进行操作。对于第 2 步,有很多方法可以通过。但我希望你这样做。

    一个。首先将其复制到文本编辑器中并更改 APPNAME = "urflaskname" 请问unix是区分大小写的。

    b.之后将文件保存为 anyname.sh(unix 脚本)

    c。传输到服务器并运行

    chmod a+x anyname.sh
    

    d。然后现在在服务器上运行它来安装flask并让你为网络做好准备

    ./anyname.sh
    

    一切都完成了。

    您也可以直接按照步骤操作,但为了确保一切正义,请尝试仅复制和编辑 APPNAME

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 2020-10-11
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 2015-01-14
      相关资源
      最近更新 更多