2017-09-26 13 views
0

Flask/Python RESTful APIを使用して遊んでいました。もちろん私はこれをローカルで試しました。Python 3.6 Windowsでmod_wsgiを使用したFlask:キューという名前のモジュールがありません

AMPPSはpythonとmod_wsgiがインストールされ、デフォルトで有効になっているので、私はAMPPSをインストールしました。私はすべてのセットアップを行ったので、デフォルトの "Hello World!"を手に入れることができました。働くためのアプリケーション。フツァ!右?

私はアプリを持ち込みようとしましたが、これが私がロードブロックに当った場所です。

最初は、フラスコという名前のモジュールがないというエラーが発生しました。

activate_this = 'path/to/venv/Scripts/activate_this.py' 
with open(activate_this) as file_: 
    exec(file_.read(), dict(__file__=activate_this)) 

このフラスコで動作するように見えたが、その後私が得た:

ModuleNotFoundError: No module named 'queue'

私はinterwebsを洗い上げてきましたし、いくつかの読書後、私はそうは次のように私は私のvirtualenvのをロードする必要があることを学びました"キュー"と "キュー"について読んでいますが、私はそれを直接インポートしていません。

ここに私が現在持っているコードがあります。

activate_this = 'path/to/venv/Scripts/activate_this.py' 
with open(activate_this) as file_: 
    exec(file_.read(), dict(__file__=activate_this)) 

# this line is what causes the error 
from flask import Flask 

def application(environ, start_response): 
    status = '200 OK' 
    output = b'Hello World!' 
    response_headers = [('Content-type', 'text/plain'),('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 
    return [output] 

助けてください。

答えて

1

あなたのmod_wsgiは実際には3.6ではなくPython 2.7用にコンパイルされています。このエラーは、Queueモジュールが3.6のqueueにリネームされたため、queueを2.7にインポートすると失敗します。

mod_wsgiをアンインストールし、Python 3.6用にコンパイルされたifのバージョンをインストールする必要があります。あるバージョンのPython用にコンパイルされたmod_wsgiのバージョンを、別のバージョンのPython仮想環境で指定することによって、異なるバージョンとして実行することはできません。これは、mod_wsgiが特定のバージョンのPythonライブラリに直接リンクされているためです。

+0

これは簡単に行うことができますか?私は以前にそれをしたことがない。私はPythonの初心者です。 – gin93r

+0

また、AMPPSにpython 3が付属し、mod_wsgiの2.7バージョンがあることは奇妙に思えます。 – gin93r

+0

mod_wsgi-expressを使用してコマンドラインでWSGIサーバーを実行することを検討してください。そうすれば、システムのApache設定に触れる必要はありません。 https://pypi.python.org/pypi/mod_wsgiとhttp://blog.dscpl.com.au/2015/04/introducing-modwsgi-express.html –

関連する問題