2012-11-04 63 views
1

部署瓶應用在子文件夾我在這裏以下說明:http://flask.pocoo.org/snippets/65/上WebFaction

但有些東西不是寫得很清楚。

所以我的結構是這樣的:

/<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」,但我有易於使用的install2在SSH SQLAlchemy中,燒瓶登錄等安裝。 6,因爲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)

回答

1

那麼顯然是錯誤消息說,您沒有安裝瓶做的。如果您在webfaction控制面板中爲Python 2.7創建應用程序,那麼您還需要爲Python 2.7安裝所有庫和Flask本身。你說你用easy_instal2.6安裝了所有東西,所以它意味着你安裝了Python 2.6的所有東西。

我會說首先安裝Python 2.7的所有libs和deps(瓶子),然後再試一次。此外,我會建議開始使用virtualenv,因爲它會幫助不要亂包後的版本(關於如何使用virtualenv部署在webfaction http://manavgoel.net/blog/post/2012/7/Deploying-flask-website-on-webfaction上的一些簡短信息)。

+0

是的,我與你的分析相吻合,但麻煩的是。我安裝了wsgi3.4/Python2.7,但它沒有出現在我的FTP庫中。這就是爲什麼easy_install2.7不起作用,不知何故應該有沒有Python2.7。 – Dexter

+0

你的默認Python是什麼?當你在服務器上運行python時,它打印出哪個版本?也許你的默認值是2.7,這就是爲什麼沒有特定版本的easy_install? –

+0

確定在另一個論壇上,我想了一下。顯然,我是爲python2.7創建一個文件夾,然後使用easy_install-2.7,它可以工作。如果你不創建那個空文件夾,它不起作用。有多混淆...... – Dexter

0

退房https://community.webfaction.com/questions/12718/installing-flask

確保遵循相應的鏈接中的步驟。對於第二步,有很多方法可以通過。但我會喜歡你這樣做。

a。首先將其複製到文本編輯器中,然後更改APPNAME =「urflaskname」 pls unix區分大小寫。

b。之後將該文件保存爲anyname.sh(unix腳本)

c。轉移到服務器並運行

chmod a+x anyname.sh 

d。然後現在在服務器上運行此安裝燒瓶,並讓您準備好網絡

./anyname.sh 

全部完成。

您也可以按照步驟直接,但以確保所有正義嘗試複製和編輯工作只有APPNAME