在WebFaction的子文件夹中部署flask应用程序

时间:2012-11-04 23:39:47

标签: python flask webfaction

我一直按照说明操作: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:

从flask导入应用程序作为应用程序

我的 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)

2 个答案:

答案 0 :(得分:1)

错误消息明确表示您没有安装Flask。如果你在webfaction控制面板中创建了与Python 2.7一样的应用程序,那么你还需要为Python 2.7安装所有的lib和Flask本身。你说你用easy_instal2.6安装了所有东西,所以这意味着你安装了Python 2.6的所有内容。

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

答案 1 :(得分:0)

结帐https://community.webfaction.com/questions/12718/installing-flask

确保相应地遵循链接中的步骤。对于第2步,有很多方法可以通过。但我希望你这样做。

一个。首先将其复制到文本编辑器中并更改APPNAME =“urflaskname” 请联系unix区分大小写。

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

℃。转移到服务器并运行

chmod a+x anyname.sh

d。然后现在在服务器中运行它来安装烧瓶并为网络做好准备

./anyname.sh

一切都已完成。

您也可以直接按照步骤操作,但要确保所有正义都尝试复制和编辑APPNAME