Flask ImportError : Flask라는 모듈이 없습니다.


103

여기 Flask 튜토리얼을 따르고 있습니다.

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 : flask라는 모듈이 없습니다.

그러나 그들의 솔루션은 도움이되지 않습니다. 참고로, 내가 않는 한 사용자가 문제가 발생할 수 있습니다 언급라는 이름의 폴더 플라스크 있습니다.


1
@MalikBrahimi Python을 실행 한 다음 flask를 가져와 설치 한 버전을 확인하면 "0.10.1"이 반환됩니다. 나는 ...이 설치되어있는 것 같습니다 그래서
bclayman

4
파이썬을 실행 import flask하면 오류가 없다고 말하는 것 입니까? 컴퓨터에 파이썬 버전이있을 수 있습니까?
ari

2
import sys; print sys.path해당 파일 (오류가 발생한 줄 앞에) 을 삽입 하고 대화 형 프롬프트에서도 실행할 수 있습니까?
ari

1
@ari 가상 환경을 시도했지만 어떻게 든 엉망으로 만들 수 있습니까? 그리고 네, 파이썬 3.3을 사용하지만 2.7 주위에 떠 있다고 생각 해요
bclayman

8
버전 3을 사용하지 않고 버전 2를 사용하고 있으며 Mac에 두 개의 Python 버전 2 사본이 있습니다. 하나는 OSX와 함께 제공되고 다른 하나는 설치되어 있습니다. 그래서, 대체로 여러분은 3 가지 버전의 Python을 가지고있는 것 같습니다. Python3, Python2 (설치), Python2 (시스템과 함께 제공됨). 여기서 올바른 환경을 사용하지 않는 것 같습니다. Flask를 설치 한 위치는 시스템 기본값이 아니며 이것이 두통의 원인 일 수 있습니다.
Burhan Khalid 2015

답변:


148

생성 한 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

Flask 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가 활성화 된 상태에서 실행하는 한 어디에나 배치 할 수 있습니다.
롤백

안녕하세요, 저는 파이썬을 처음 접했습니다. 터미널에서 virtualenv로 모든 것이 잘 작동합니다. 하지만 내 문제는 IDE Atom을 사용하고 있다는 것입니다. 동일한 virtualenv 환경에서 코드를 실행할 수 있습니까?
부그

55

파이썬 3 사용

pip3 설치 플라스크


4
파이썬 버전을 2.7에서 3으로 변경 한 후 작동했습니다!
Ricardo Silva

네, 작동합니다! pip install flask (python 2 용)를 수행하는 대신 python3을 사용하는 경우 pip3 install flask 또는 다른 flask 확장을 사용해야합니다. Python 버전을 변경하려면 별칭 python = "python3"을 사용할 수 있습니다.
Kourosh

12

내가 해결할 수있는 유일한 방법은 사용자 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/
카를로스 올리베이라를

고마워요!
ajoros

7

가상 환경을 활성화하고 Flask를 설치 한 후 app.py 파일을 생성했습니다. 다음과 같이 실행합니다 python -m flask run. 이것이 도움이되기를 바랍니다!


이것이 왜 작동하는지 확실하지 않습니다. 아마도 경로와 관련이 있습니다. 이것에 대한 통찰력이 있습니까?
nscalf

5

나는 flasgger와 비슷한 문제가 있었다.

그 이유는 제가 항상

sudo pip install flask

하지만 어떤 이유로 항상 그렇게하는 것은 아닙니다. 때때로, 당신은 단지

pip install flask

또 다른 문제는 때때로 사람들 pip install Flask캡 F로 입력한다는 것입니다.

누군가가 막힐 경우를 대비하여 여기에 게시하십시오. 도움이되었는지 알려주세요.

유용한 링크 : pip 설치와 sudo pip 설치의 차이점은 무엇입니까?


5

이것이 나를 위해 일한 것입니다.

sudo -H pip install flask

또는 pip3 (python3) 사용 :

sudo -H pip3 install flask

사이드 노트

virtualenv pip freeze >> requirements.txt 를 사용하는 경우 설치된 패키지가 한곳에 나열되도록 하는 것이 좋습니다 . sudo명령 -H플래그. sudo-H깃발 에 대한 자세한 내용 은 Paul의 답변을 참조하십시오 . 도움이 되었기를 바랍니다.


3

나는 python2를 사용하고 있었지만 이것을 설치했습니다 : sudo apt-get install libapache2-mod-wsgi-py3

대신 : sudo apt-get install libapache2-mod-wsgi

설치를 수정하면 플라스크 문제가 해결되었습니다.


1
아 그 간단한 것. 내가 파이썬 3로 업그레이드 한 후 내 dockerfile에서 잘못된 libapache의 모드의 WSGI했다 ... +1이
Craicerjack

3

제 경우 솔루션은 다음과 같이 가상 환경을 시작하는 것만 큼 간단했습니다.

$ venv/scripts/activate

나는 여전히 파이썬에 신선하다는 것이 밝혀졌습니다. :)


2
  1. 편집하다 /etc/apache2/sites-available/FlaskApp.conf
  2. "WSGIScriptAlias"줄 앞에 다음 두 줄을 추가합니다.

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

마이크로 블로그의 flask 파일로 이동 한 다음를 사용하여 가상 환경을 활성화 source bin/activate한 다음 flask / bin으로 이동하여 flask를 설치하고 나머지 패키지는 pip install flask. bin 디렉토리에 플라스크가 나열됩니다. ./run.py마이크로 블로그 (또는 파일이있는 곳)에서 다시 실행 해보십시오 .


1

나도 u virtualenv를 제안합니다. 이것은 또한 ur 문제를 해결할 수 있습니다.

sudo apt install python-flask

프로덕션 서버에 배포하려면 위의 솔루션으로 진행하고 virtualenv를 사용하십시오.


1

Windows에서 비슷한 오류가 발생했을 때 이것이 저에게 효과적이었습니다. 1. virtualenv 설치

pip install virtualenve
  1. virtualenv 만들기

    virtualenv 플라스크

  2. 스크립트로 이동하여 virtualenv를 활성화하십시오.

    활성화

  3. Flask 설치

    python -m pip 설치 플라스크

  4. 플라스크가 설치되어 있는지 확인

    python -m pip 목록


0

파이썬 대화 형 모드를 입력 한 다음 :

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 아래에 파이썬 패키지를 설치합니다.

이것이 MacOS에서 작동하지 않는 이유입니다.


0

플라스크 스크립트는 로컬 개발 서버를 시작하는 것이 좋지만 코드를 변경할 때마다 수동으로 다시 시작해야합니다. 그것은별로 좋지 않으며 Flask가 더 잘할 수 있습니다. 디버그 지원을 활성화하면 서버가 코드 변경시 자체적으로 다시로드되며 문제가 발생하면 유용한 디버거를 제공합니다. 디버그 모드를 활성화하려면 서버를 실행하기 전에 FLASK_DEBUG 환경 변수를 내보낼 수 있습니다. 예를 들어 파일은 hello.py입니다.

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

0

Docker를 사용하는 경우에는 .env 파일이 복사되지 않았으므로 다음 env 변수가 설정되지 않았습니다.

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

그래서 Dockerfile나는 다음을 포함해야했습니다.

FROM deploy as dev
COPY env ./env

docker-compose.yml에서 참조되었습니다.

env_file: ./env/.env.local

주의해야 할 또 다른 것은 내 환경이 사용되는지 확인하기위한 경로 변수입니다.

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

0

Visual Studio Flesk 웹 프로젝트를 사용하는 모든 사용자에 대한 내 대답 :

"Python 환경"을 마우스 오른쪽 버튼으로 클릭하고 "환경 추가"를 클릭하십시오.


0

Pycharm을 사용하는 경우 이것은 가상 환경 문제입니다.

따라서 Python 프로젝트를 생성 할 때 "기존 인터프리터"옵션을 선택하고-> "시스템 인터프리터"를 클릭하고-> 올바른 옵션을 선택해야합니다 (예 : "* \ AppData \ Local \ Programs \ Python \ Python3.6 \). python.exe "입니다.

'New Virtual Env'도 사용할 수 있지만 Pycharm 사용자에게 적합한 빠른 수정을 방금 제공했습니다.


0

또 다른 한가지-python3을 사용하는 경우 서버가 python3 server.py아닌으로 서버를 시작하는지 확인하십시오.python server.py


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.