1

私はここの指示に従っています: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>

コントロールパネルから「wsgi3.4/Python2.7」としてインストールしましたが、easy-install2.7が存在しないため、easy-install2.6を使用してSSH SQLAlchemy、flask-loginなどにインストールする必要がありました。

サーバーエラーログには次のように記載されています。

 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を再起動しました)

4

2 に答える 2

1

エラーメッセージには、Flaskがインストールされていないことが明確に示されています。Python 2.7のようにwebfactionコントロールパネルでアプリケーションを作成した場合は、Python2.7のすべてのライブラリとFlask自体もインストールする必要があります。easy_instal2.6ですべてをインストールしたと言っているので、Python2.6用にすべてをインストールしたことを意味します。

まず、Python 2.7のすべてのlibとdeps(フラスコも)をインストールして、再試行します。また、virtualenvの使用を開始することをお勧めします。これは、後でパッケージのバージョンを混乱させないようにするためです(webfactionhttp://manavgoel.net/blog/post/2012/7/Deploying-でvirtualenvを使用してデプロイする方法に関する短い情報フラスコ-ウェブサイト-オン-ウェブファクション)。

于 2012-11-05T08:03:18.133 に答える
0

https://community.webfaction.com/questions/12718/installing-flaskをチェックしてください

それに応じて、リンクの手順に従ってください。ステップ2では、多くの方法があります。しかし、私はあなたにこのようにしてもらいたいと思います。

a。最初にそれをテキストエディタにコピーし、APPNAME="urflaskname"を変更します。plsunixでは大文字と小文字が区別されます。

b。その後、ファイルをanyname.sh(unixスクリプト)として保存します

c。サーバーに転送して実行します

chmod a+x anyname.sh

d。次に、これをサーバーで実行してフラスコをインストールし、Webの準備をします

./anyname.sh

すべて完了です。

手順を直接実行することもできますが、すべての正当性を確保するために、APPNAMEのみをコピーして編集してみてください

于 2014-04-07T08:58:16.390 に答える