Flask ImportError: Flask Adında Modül Yok


108

Burada Flask eğitimini takip ediyorum:

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

./Run.py denediğim noktaya geliyorum ve şunu elde ediyorum:

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

Bu şuna benzer:

ImportError: Flask adlı modül yok

Ancak çözümleri yardımcı olmuyor. Başvuru için ben do bir kullanıcı sorunlarına neden olabilir belirtilen bir klasör adında şişesi var.


1
@MalikBrahimi Python'u çalıştırıp şişeyi içe aktardığımda ve hangi sürümü yüklediğimi kontrol ettiğimde, "0.10.1" veriyor.
Yüklemiş

4
Python çalıştırırsanız ve sonra import flaskhiç hatanız olmaz mı diyorsunuz? Bilgisayarınızda python sürümlerinin olması mümkün mü?
ari

2
Bu import sys; print sys.pathdosyaya (hatanın oluştuğu satırdan önce) ekleyebilir ve bunu etkileşimli istemde çalıştırabilir misiniz?
ari

1
@ari Sanal ortam olayını yapmaya çalıştım ama bir şekilde mahvetmiş olabilir miyim? ve evet, Python 3.3 kullanıyorum ama sanırım 2.7 dolaşıyor
bclayman

8
Sürüm 3'ü kullanmıyorsunuz, sürüm 2'yi kullanıyorsunuz ve Mac'inizde biri OSX ile gelen, diğeri de yüklediğiniz iki Python sürüm 2 kopyası var. Sonuç olarak, Python'un üç sürümüne sahipmişsiniz gibi görünüyor; Python3, Python2 (yüklediniz), Python2 (sistemle birlikte gelir). Burada doğru ortamı kullanmadığınız anlaşılıyor; Flask'ı kurduğunuz yer sistem varsayılanı değildir ve bu muhtemelen baş ağrınızın nedenidir.
Burhan Khalid

Yanıtlar:


152

Oluşturduğunuz sanal ortamı silmeyi deneyin. Ardından şunlarla yeni bir sanal ortam oluşturun:

virtualenv flask

Sonra:

cd flask

Şimdi virtualenv'i etkinleştirelim

source bin/activate

Şimdi (flask)komut satırının solunda görmelisiniz .

Düzenleme: Windows'ta linux olan bir "kaynak" yoktur, bunun yerine activ.bat dosyasını çalıştırın, burada Powershell: PS C: \ DEV \ aProject> & .\Flask\Scripts\activate)

Şişeyi kuralım:

pip install flask

Ardından hello.py(NOT: aşağıya UPDATE Flask 1.0.2bakın) adlı bir dosya oluşturun :

from flask import Flask
app = Flask(__name__)

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

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

ve şununla çalıştırın:

python hello.py

GÜNCELLEME Flask 1.0.2

Yeni şişe sürümüyle, uygulamayı betiğinizden çalıştırmanıza gerek yoktur. hello.pyşimdi şöyle görünmeli:

from flask import Flask
app = Flask(__name__)

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

ve şununla çalıştırın:

FLASK_APP=hello.py flask run

hello.pyEn son komutu çalıştırırken klasörün içinde olduğunuzdan emin olun .

Hello.py oluşturmadan önceki tüm adımlar bu durum için de geçerlidir.


3
Virtualenv etkinken çalıştırdığınız sürece herhangi bir yere yerleştirebilirsiniz.
geri dönüş

Merhaba, python için çok yeniyim. Her şey terminalde virtualenv ile gayet iyi çalışıyor. Ama benim sorunum IDE Atom kullanıyorum ... atom kodu aynı virtualenv ortamında çalıştırabilir mi?
2019

57

Python 3 kullanımı için

pip3 yükleme şişesi


4
Python sürümümü 2.7'den 3'e değiştirdikten sonra işe yaradı!
Ricardo Silva

Evet bu çalışıyor! Pip install flask (python 2 için olan) yapmak yerine python3 kullanıyorsanız pip3 install flask veya diğer flask uzantılarını kullanmanız gerekir. Python sürümünüzü değiştirmek için takma adı python = "python3" kullanabilirsiniz.
Kourosh

12

Çözebilmemin tek yolu kullanıcılarımın myapp.wsgi dosyasına python dizinini eklemekti. Örnek olarak:

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

Sanırım paketleri global ortamda kurarsanız sorun yaşamazsınız ama kullanıcı olarak python paketleri yükledim.


ya da bunu yaparakexport PYTHONPATH=/root/environments/my_env/lib/python3.6/site-packages/
Carlos Oliveira

Benim için sağlam çalıştı, teşekkürler!
ajoros

7

Sanal ortamı etkinleştirip Flask'ı kurduktan sonra bir app.py dosyası oluşturdum. Ben böyle çalıştırın: python -m flask run. Umarım bu yardımcı olur!


Bunun neden işe yaradığından emin değilim, muhtemelen yolla ilgili bir şey. Bununla ilgili bir fikir var mı?
nscalf

6

Flasgger ile benzer bir sorun yaşadım.

Bunun nedeni her zaman kullanmamdı

sudo pip install flask

ama bazı nedenlerden dolayı bu her zaman yapılacak yol değildir. Bazen sadece yapmalısın

pip install flask

Başka yakaladım bazen insanlar tip olmasıdır pip install Flaskile kapağı F

Birinin takılıp kalması ihtimaline karşı bunu buraya postalamak. Yardımı olup olmadığını bana bildirin.

Faydalı Bağlantı: pip kurulumu ile sudo pip kurulumu arasındaki fark nedir?


5

bu benim için çalıştı

sudo -H pip install flask

Veya pip3 (python3) için şunu kullanın:

sudo -H pip3 install flask

Kenar notu

Virtualenv kullanıyorsanız pip freeze >> requirements.txt , kurulu paketlerin tek bir yerde listelenmesine izin vermek iyi bir fikirdir . sudoKomuta ve -Hbayrağı. Hakkında daha fazlası için sudobireyin -Hbayrak, bakmak Paul cevap . Umarım bu size yardımcı olur.


3

Python2 kullanıyordum ama şunu yükledim: sudo apt-get install libapache2-mod-wsgi-py3

Bunun yerine: sudo apt-get install libapache2-mod-wsgi

Kurulumun düzeltilmesi, şişesiz problemi çözdü.


1
Ah bu basit şeyler. Python 3'e yükselttikten sonra dockerfile dosyamda yanlış libapache mod wsgi vardı ... +1
Craicerjack,

3

Benim durumumda çözüm, sanal ortamımı şu şekilde başlatmak kadar basitti:

$ venv/scripts/activate

Görünüşe göre hala Python'a yeniyim :)


2
  1. Düzenle /etc/apache2/sites-available/FlaskApp.conf
  2. "WSGIScriptAlias" satırından önce aşağıdaki iki satırı ekleyin:

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

  1. Apache'yi yeniden başlatın:service apache2 restart

Ben de Flask eğitimini takip ediyorum ve aynı problemle karşılaştım ve düzeltmek için bu yolu buldum.

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


1

Microblog'daki flask dosyasına source bin/activategidin, ardından sanal ortamı ile etkinleştirin , ardından flask / bin'e gidin ve flask'ı kurun ve paketlerin geri kalanını kurun pip install flask. Bin dizininin içinde şişe göreceksiniz. ./run.pyMikroblogdan (veya dosyanın olduğu her yerden) tekrar çalıştırmayı deneyin .


1

Ben de u virtualenv'i öneriyorum bile, Bu da probleminizi çözebilir.

sudo apt install python-flask

Prodüksiyon sunucusunda dağıtmak istiyorsanız, yukarıdaki çözüme devam edin, aksi takdirde virtualenv kullanın.


1

Windows'ta benzer bir hata aldığımda benim için çalışan buydu; 1. virtualenv'i yükleyin

pip install virtualenve
  1. Bir virtualenv oluştur

    Virtualenv şişesi

  2. Komut Dosyalarına gidin ve sanal ortamı etkinleştirin

    etkinleştirmek

  3. Flask'ı yükleyin

    python -m pip yükleme şişesi

  4. Şişenin takılı olup olmadığını kontrol edin

    python -m pip listesi


1

Başka bir şey - python3 kullanıyorsanız, sunucunuzu başlattığınızdan emin olun python3 server.py,python server.py


0

python etkileşimli modunuzu girin ve ardından:

import sys

sys.path

yolunuzu yazdıracaktır. Sys.path içinde hava şişesinin kurulu olup olmadığını kontrol edin.

MacOS için python yolu /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages altındadır

Ancak pip, python paketini varsayılan olarak /Library/Python/2.7/site-packages altına yükler.

Bu yüzden MacOS için çalışmıyor.


0

Flask komut dosyası yerel bir geliştirme sunucusunu başlatmak için iyidir, ancak kodunuzdaki her değişiklikten sonra onu manuel olarak yeniden başlatmanız gerekir. Bu hiç hoş değil ve Flask daha iyisini yapabilir. Hata ayıklama desteğini etkinleştirirseniz, sunucu kod değişikliklerinde kendini yeniden yükler ve ayrıca işler ters giderse size yardımcı bir hata ayıklayıcı sağlar. Hata ayıklama modunu etkinleştirmek için, sunucuyu çalıştırmadan önce FLASK_DEBUG ortam değişkenini dışa aktarabilirsiniz: örneğin, dosyanız hello.py olsun

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

0

Docker kullandığım durumda, .env dosyam kopyalanmadı, bu nedenle aşağıdaki env değişkenleri ayarlanmadı:

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

bu yüzden benim Dockerfiledahil etmeliydim:

FROM deploy as dev
COPY env ./env

docker-compose.yml içinde başvurulan

env_file: ./env/.env.local

Dikkat etmem gereken bir diğer şey de ortamımın kullanılmasını sağlamak için yol değişkeni

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

0

cevabım sadece Visual Studio Flesk Web projesini kullanan tüm kullanıcılar için:

"Python Ortamı" na Sağ Tıklayın ve "Ortam Ekle" yi tıklayın


0

Pycharm kullanıyorsanız, bu sanal ortam sorunudur.

Bu nedenle, Python projenizi oluştururken "Mevcut yorumlayıcı" seçeneğini seçmeniz gerekir -> "sistem Yorumlayıcı" yı tıklayın -> doğru seçeneği seçin, örneğin "* \ AppData \ Local \ Programs \ Python \ Python3.6 \ python.exe ".

'Yeni Sanal Env'i de kullanabilirsiniz, ancak Pycharm kullanıcıları için çalışması gereken hızlı düzeltmeyi verdim.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.