फ्लास्क इंपोर्टर: कोई मॉड्यूल नामित फ्लास्क नहीं


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 जब मैं पायथन चलाता हूं और तब फ्लास्क आयात करता हूं और जांचता हूं कि मैंने कौन सा संस्करण स्थापित किया है, तो यह "0.10.1" वापस देता है। तो ऐसा लगता है कि मैंने इसे स्थापित किया है ...
bclayman

4
आप कह रहे हैं कि क्या आप अजगर को चलाते हैं और फिर import flaskआपको कोई त्रुटि नहीं है? क्या यह संभव है कि आपके कंप्यूटर पर अजगर के संस्करण हों?
अरी जुएल

2
क्या आप import sys; print sys.pathउस फ़ाइल में डाल सकते हैं (पंक्ति के पहले जहां त्रुटि होती है) और इंटरेक्टिव प्रॉम्प्ट में भी इसे चला सकते हैं?
अरी

1
@ari मैंने वर्चुअल एनवायरनमेंट चीज़ करने की कोशिश की है लेकिन हो सकता है कि इसे किसी तरह गड़बड़ कर दिया हो? और हाँ, मैं पायथन 3.3 का उपयोग कर रहा हूं, लेकिन मुझे लगता है कि मेरे पास 2.7 फ्लोटिंग है
bclayman

8
आप संस्करण 3 का उपयोग नहीं कर रहे हैं, आप संस्करण 2 का उपयोग कर रहे हैं, और आपके पास अपने मैक पर पायथन संस्करण 2 की दो प्रतियां हैं, एक जो OSX के साथ आई है, और दूसरी जो आपने स्थापित की है। तो, सभी में - ऐसा लगता है कि आपके पास पायथन के तीन संस्करण हैं; Python3, Python2 (आपने स्थापित), Python2 (सिस्टम के साथ आया)। लगता है जैसे आप यहाँ सही वातावरण का उपयोग नहीं कर रहे हैं; जहाँ आपने Flask स्थापित किया है वह सिस्टम डिफॉल्ट नहीं है, और यह आपके सिरदर्द का कारण है।
बुरहान खालिद

जवाबों:


146

आपके द्वारा बनाए गए 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नवीनतम कमांड चलाते समय फ़ोल्डर के अंदर होना सुनिश्चित करें ।

हेल्लो के निर्माण से पहले के सभी चरण इस मामले के लिए भी लागू होते हैं


3
आप इसे तब तक कहीं भी रख सकते हैं जब तक आप इसे virtualenv enable के साथ चलाते हैं।
रोलबैक

हाय, मैं अजगर के लिए बहुत नया हूं। टर्मिनल में virtualenv के साथ सब कुछ ठीक काम करता है। लेकिन, मेरी समस्या यह है कि मैं आईडीई एटम का उपयोग कर रहा हूं ... क्या परमाणु एक ही वर्चुअन पर्यावरण पर कोड चला सकता है?
19:56

52

अजगर 3 उपयोग के लिए

pip3 स्थापित फ्लास्क


4
2.7 से 3 तक मेरे अजगर संस्करण को बदलने के बाद, इसने काम किया!
रिकार्डो सिल्वा

हाँ, यह काम करता है! पाइप इंस्टॉल फ्लास्क (जो कि अजगर 2 के लिए है) करने के बजाय, यदि आप पायथन 3 का उपयोग कर रहे हैं, तो आपको पाइप 3 स्थापित फ्लास्क या फ्लास्क के अन्य एक्सटेंशन का उपयोग करने की आवश्यकता है। अपने पायथन संस्करण को बदलने के लिए, आप उर्फ ​​अजगर = "पायथन 3" का उपयोग कर सकते हैं।
कोरोश

11

जिस तरह से मैं हल कर सकता था वह मेरे उपयोगकर्ताओं को myapp.ws के लिए python dir जोड़कर था। उदहारण के लिए:

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

मुझे लगता है कि यदि आप वैश्विक वातावरण में पैकेज स्थापित करते हैं, तो आपको कोई समस्या नहीं होनी चाहिए, लेकिन मेरे पास मेरे अजगर पैकेज उपयोगकर्ता के रूप में स्थापित थे।


या ऐसा करकेexport PYTHONPATH=/root/environments/my_env/lib/python3.6/site-packages/
कार्लोस ओलिवेरा

7

वर्चुअल वातावरण को सक्रिय करने और फ्लास्क को स्थापित करने के बाद, मैंने एक ऐप्पडॉक फ़ाइल बनाई। मैं इसे इस तरह से चलाता हूं python -m flask run:। आशा है कि यह मदद करेगा!


निश्चित नहीं है कि यह क्यों काम कर रहा है, शायद पथ के साथ कुछ करना है। इस पर कोई अंतर्दृष्टि?
nscalf

5

मुझे फ्लास्गर के साथ भी ऐसी ही समस्या थी।

इसका कारण यह था कि मैं हमेशा उपयोग करता हूं

sudo pip install flask

लेकिन किसी कारण से यह हमेशा जाने का रास्ता नहीं है। कभी-कभी, आपको बस करना होगा

pip install flask

एक और गोचा यह है कि कभी-कभी लोग कैप एफ केpip install Flask साथ टाइप करते हैं

मामले में यहाँ पोस्टिंग किसी को अटक जाता है। अगर यह मदद की मुझे पता है।

उपयोगी लिंक: पाइप स्थापित और सुडो पाइप स्थापित के बीच क्या अंतर है?


5

इसी से मेरा काम बना है,

sudo -H pip install flask

या pip3 (python3) उपयोग के लिए:

sudo -H pip3 install flask

पक्षीय लेख

यदि आप virtualenv का उपयोग कर रहे हैं pip freeze >> requirements.txt , तो स्थापित संकुल को एक स्थान पर सूचीबद्ध करने की अनुमति देना एक अच्छा विचार है। sudoकमान और -Hझंडा। अधिक जानकारी के लिए sudoके -Hझंडा, पर नज़र पॉल जवाब । आशा है कि यह आपकी मदद करता है।


3

मैं python2 का उपयोग कर रहा था, लेकिन इसे स्थापित किया: sudo apt-get install libapache2-mod-wsgi-p3

इसके बजाय: sudo apt-get install libapache2-mod-wsgi

स्थापना को ठीक करने से नो फ्लास्क समस्या हल हो गई।


1
आह इसकी सरल बातें। मैं अजगर 3 में अपग्रेड करने के बाद अपने डॉकटराइल में गलत लीबापैच मॉड wsgi था ...
क्रेसेरजैक

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. फिर से शुरू करें:service apache2 restart

मैं फ्लास्क ट्यूटोरियल का अनुसरण कर रहा हूं। और मैं एक ही समस्या से मिला। मैंने इसे ठीक करने का तरीका ढूंढ लिया।

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


1

माइक्रोब्लॉग में फ्लास्क फाइल पर जाएं, फिर वर्चुअल एनवायरनमेंट के साथ सक्रिय करें source bin/activate, फिर फ्लास्क / बिन पर जाएं और फ्लास्क स्थापित करें, और बाकी पैकेज pip install flask,। आप बिन निर्देशिका के अंदर सूचीबद्ध फ्लास्क देखेंगे। ./run.pyमाइक्रोब्लॉग (या जहाँ भी आपके पास फ़ाइल है) से फिर से चलाने की कोशिश करें ।


1

यहां तक ​​कि मैं भी यू virtualenv सुझाव है, यह भी उर समस्या को हल कर सकते हैं।

sudo apt install python-flask

यदि आप प्रोडक्शंसर में तैनात करना चाहते हैं तो उपरोक्त समाधान के साथ आगे बढ़ें वर्चुअलाइजेंव का उपयोग करें।


1

जब विंडोज में मुझे एक समान त्रुटि मिली, तो यह मेरे लिए काम कर रहा था; 1. virtualenv स्थापित करें

pip install virtualenve
  1. एक virtualenv बनाएँ

    virtualenv फ्लास्क

  2. लिपियों पर नेविगेट करें और virtualenv को सक्रिय करें

    सक्रिय

  3. फ्लास्क स्थापित करें

    अजगर एम पाइप स्थापित फ्लास्क

  4. जाँचें कि क्या फ्लास्क स्थापित है

    अजगर की पाइप सूची


0

फिर अपने अजगर इंटरएक्टिव मोड में प्रवेश करें:

import sys

sys.path

यह आपके मार्ग को मुद्रित करेगा। Sys.path में चेक विथर फ्लास्क स्थापित किया गया है।

MacOS के लिए, python पथ /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages के अंतर्गत है

लेकिन pipet / library/Python/2.7/site-packages के तहत डिफ़ॉल्ट रूप से अजगर पैकेज स्थापित करेगा

इसलिए यह MacOS के लिए काम नहीं करता है।


0

फ्लास्क स्क्रिप्ट एक स्थानीय विकास सर्वर शुरू करने के लिए अच्छा है, लेकिन आपको अपने कोड में प्रत्येक परिवर्तन के बाद इसे मैन्युअल रूप से पुनरारंभ करना होगा। यह बहुत अच्छा नहीं है और फ्लास्क बेहतर कर सकते हैं। यदि आप डिबग समर्थन सक्षम करते हैं तो सर्वर कोड परिवर्तन पर खुद को फिर से लोड करेगा, और यदि चीजें गलत होती हैं तो यह आपको एक सहायक डिबगर भी प्रदान करेगा। डिबग मोड को सक्षम करने के लिए आप सर्वर चलाने से पहले FLASK_DEBUG पर्यावरण चर निर्यात कर सकते हैं: अपनी फ़ाइल को फॉरेक्सप्लस करें

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

0

मेरे मामले में Docker का उपयोग करते हुए, मेरी .env फ़ाइल की प्रतिलिपि नहीं बनाई गई थी, इसलिए निम्न env var सेट नहीं किए गए थे:

.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

विजुअल स्टूडियो Flesk वेब परियोजना का उपयोग करने वाले किसी भी उपयोगकर्ता के लिए मेरा जवाब:

बस "पायथन पर्यावरण" पर राइट क्लिक करें और "पर्यावरण जोड़ें" पर क्लिक करें


0

यदि आप Pycharm का उपयोग कर रहे हैं तो यह आभासी पर्यावरण का मुद्दा है।

तो, अपने पायथन प्रोजेक्ट को बनाने के समय आपको "मौजूदा दुभाषिया" विकल्प का चयन करना होगा -> "सिस्टम इंटरप्रेटर" पर क्लिक करें -> उदाहरण के लिए सही विकल्प का चयन करें "* AppData \ Local \ Programs \ Python's Python3.6 \" python.exe "।

आप 'न्यू वर्चुअल एनव' का भी उपयोग कर सकते हैं, लेकिन मैंने अभी ठीक किया है कि Pycharm उपयोगकर्ताओं के लिए काम करना चाहिए।


0

एक और बात - अगर आप python3 का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप अपना सर्वर शुरू कर रहे हैं python3 server.py, नहींpython server.py


-1

पाइप अपग्रेड करने के बाद इसने मेरे लिए काम किया:

curl https://bootstrap.pypa.io/get-pip.py | python

उस उत्तर को यहां देखें: https://stackoverflow.com/a/49748494/3197202

तब मैं बस फ्लास्क स्थापित कर सकता था:

pip install flask
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.