Flask ImportError:Flaskという名前のモジュールはありません


100

私はここでフラスコのチュートリアルに従っています:

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

./run.pyを試してみると、次のようになります。

Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from app import app
  File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask

これは次のようになります。

ImportError:フラスコという名前のモジュールはありません

しかし、それらの解決策は役に立ちません。参考のために、私はない一人のユーザーが問題を引き起こす可能性が言及したフォルダという名前のフラスコを持っています。


1
@MalikBrahimi Pythonを実行してフラスコをインポートし、インストールしたバージョンを確認すると、「0.10.1」が返されます。だから私はそれをインストールしているように見えます...
bclayman

4
あなたがPythonを実行したimport flask場合、あなたはエラーがないと言っていますか?お使いのコンピューターでpythonのバージョンを使用する必要がありますか?
2015

2
import sys; print sys.pathそのファイルに(エラーが発生する行の前に)挿入し、それを対話型プロンプトでも実行できますか?
2015

1
@ari私は仮想環境のことをやろうとしたが、どういうわけかそれを台無しにしたのだろうか?はい、私はPython 3.3を使用していますが、2.7が浮かんでいると思います
bclayman '6/07/18

8
バージョン3を使用しておらず、バージョン2を使用していて、Macに2つのPythonバージョン2のコピーがあり、1つはOSXに付属し、もう1つはインストールしたものです。つまり、全体として、3つのバージョンのPythonがあるように見えます。Python3、Python2(インストール済み)、Python2(システムに付属)。ここでは正しい環境を使用していないようです。Flaskをインストールした場所はシステムのデフォルトではありません。これが頭痛の原因である可能性があります。
Burhan Khalid 2015

回答:


145

作成したvirtualenvを削除してみてください。次に、次のコマンドで新しいvirtualenvを作成します。

virtualenv flask

次に:

cd flask

ここでvirtualenvをアクティブにします。

source bin/activate

これ(flask)で、コマンドラインの左側が表示されます。

フラスコをインストールしましょう:

pip install flask

次に、という名前のファイルを作成しますhello.py(注:UPDATE Flask 1.0.2以下を参照):

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

そしてそれを実行します:

python hello.py

フラスコ1.0.2の更新

新しいフラスコリリースでは、スクリプトからアプリを実行する必要はありません。 hello.pyこれは次のようになります。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

そしてそれを実行します:

FLASK_APP=hello.py flask run

hello.py最新のコマンドを実行するときは、があるフォルダー内にあることを確認してください。

hello.pyを作成する前のすべての手順は、この場合にも適用されます


3
virtualenvを有効にして実行する限り、どこにでも配置できます。
ロールバック

こんにちは、私はPythonが非常に新しいです。ターミナルのvirtualenvですべてがうまく機能します。しかし、私の問題はIDE Atomを使用していることです...同じvirtualenv環境でコードを実行できますか?
boog

52

Python 3の場合

pip3インストールフラスコ


4
Pythonのバージョンを2.7から3に変更した後、うまくいきました!
Ricardo Silva

はい、これでうまくいきます!python 3を使用している場合は、pipインストールフラスコ(python 2用)を実行する代わりに、pip3インストールフラスコまたはその他のフラスコの拡張機能を使用する必要があります。Pythonのバージョンを変更するには、エイリアスpython = "python3"を使用できます。
Kourosh

11

私が解決できる唯一の方法は、ユーザーのpython dirをmyapp.wsgiファイルに追加することでした。例として:

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')

パッケージをグローバル環境にインストールすれば問題はないと思いますが、Pythonパッケージをユーザーとしてインストールしました。


またはこれを行うことによってexport PYTHONPATH=/root/environments/my_env/lib/python3.6/site-packages/
Carlos Oliveira

7

仮想環境をアクティブにしてFlaskをインストールした後、app.pyファイルを作成しました。私は次のように実行しますpython -m flask run。これが役立つことを願っています!


なぜこれが機能するのかわからない、おそらくパスと関係があります。これに関する洞察はありますか?
nscalf

5

私はフラスガーで同様の問題がありました。

その理由は、私はいつも

sudo pip install flask

しかし、何らかの理由で、それが常にうまくいくとは限りません。時々、あなたはただやらなければならない

pip install flask

別の落とし穴は、人々が時々キャップFでタイプpip install Flaskすることです

誰かが行き詰まった場合に備えて、ここに投稿します。それが役に立ったかどうか私に知らせてください。

役立つリンク: pip installとsudo pip installの違いは何ですか?


5

これは私のために働いたものです、

sudo -H pip install flask

または、pip3(python3)の場合:

sudo -H pip3 install flask

サイドノート

virtualenvを使用している場合pip freeze >> requirements.txt は、インストールされたパッケージを1か所にリストできるようにすることをお勧めし ます。sudoコマンドと-Hフラグ。sudo-H旗について詳しくは、ポールの 答えをご覧ください。これがお役に立てば幸いです。


3

私はpython2を使用していましたが、これをインストールしました:sudo apt-get install libapache2-mod-wsgi-py3

代わりに:sudo apt-get install libapache2-mod-wsgi

インストールを修正すると、フラスコなしの問題が解決しました。


1
ああ、単純なことです。python 3にアップグレードした後、dockerfileに間違ったlibapache mod wsgiがあった... +1がある
Craicerjack

3

私の場合、ソリューションは次のように仮想環境を起動するのと同じくらい簡単でした:

$ venv/scripts/activate

私はまだPythonに慣れています:)


2
  1. 編集する /etc/apache2/sites-available/FlaskApp.conf
  2. "WSGIScriptAlias"行の前に次の2行を追加します。

WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp WSGIProcessGroup FlaskApp

  1. Apacheを再起動します。service apache2 restart

私もFlaskチュートリアルに従っていますが、同じ問題に遭遇しました。この方法で修正しました。

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world


1

マイクロブログのフラスコファイルに移動し、次にで仮想環境をアクティブ化してsource bin/activateから、フラスコ/ビンに移動してフラスコをインストールし、残りのパッケージをインストールしますpip install flask。binディレクトリ内にフラスコが一覧表示されます。./run.pyマイクロブログ(またはファイルがある場所)からもう一度実行してみてください。


1

私もu virtualenvを提案していますが、これも問題を解決する可能性があります。

sudo apt install python-flask

本番サーバーにデプロイする場合は、上記のソリューションを続行するか、virtualenvを使用してください。


1

これは、Windowsで同様のエラーが発生したときに機能しました。1. virtualenvをインストールする

pip install virtualenve
  1. virtualenvを作成する

    virtualenvフラスコ

  2. スクリプトに移動し、virtualenvをアクティブ化します。

    活性化する

  3. Flaskをインストールする

    python -m pip installフラスコ

  4. フラスコが取り付けられているかどうかを確認する

    python -m pipリスト


0

次に、Pythonインタラクティブモードに入ります。

import sys

sys.path

パスが表示されます。フラスコがsys.pathにインストールされているかどうかを確認します。

MacOSの場合、Pythonパスは/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packagesにあります

しかし、pipはデフォルトで/Library/Python/2.7/site-packagesの下にpythonパッケージをインストールします

そのため、MacOSでは機能しません。


0

フラスコスクリプトはローカル開発サーバーを起動するのに適していますが、コードを変更するたびに手動で再起動する必要があります。それはあまり良くありません、そして、Flaskはよりよくすることができます。デバッグサポートを有効にすると、サーバーはコードの変更時に自身をリロードし、問題が発生した場合に役立つデバッガーも提供します。デバッグモードを有効にするには、サーバーを実行する前にFLASK_DEBUG環境変数をエクスポートします。たとえば、ファイルはhello.pyです。

$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run

0

私の場合、Dockerを使用すると、.envファイルがコピーされなかったため、次の環境変数が設定されませんでした。

.env.local: FLASK_APP=src/app.py

だから私の中Dockerfileに含める必要がありました:

FROM deploy as dev
COPY env ./env

docker-compose.ymlで参照された

env_file: ./env/.env.local

私が注意しなければならないもう1つのことは、環境が使用されていることを確認するためのパス変数です

ENV PATH $CONDA_DIR/envs/:my_environment_name_from_yml_file:/bin:$CONDA_DIR/bin:$PATH```

0

Visual Studio Flesk Webプロジェクトを使用するすべてのユーザーに対する私の答え:

「Python環境」を右クリックし、「環境を追加」をクリックします。


0

Pycharmを使用している場合、これは仮想環境の問題です。

したがって、Pythonプロジェクトを作成するときに、「既存のインタープリター」オプションを選択する必要があります->「システムインタープリター」をクリックします->「* \ AppData \ Local \ Programs \ Python \ Python3.6 \」などの正しいオプションを選択しますpython.exe」。

'New Virtual Env'も使用できますが、Pycharmユーザーに役立つはずのクイックフィックスを提供しました。


0

もう1つ-python3を使用している場合は、サーバーをpython3 server.pyで起動していることを確認してください。python server.py


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.