/ / मॉड्यूल फ्लास्क लॉगिन में त्रुटि - अजगर, फ्लास्क, पर्यवेक्षक, फ्लास्क-लॉगिन

मॉड्यूल फ्लास्क लॉगिन पर त्रुटि - पायथन, फ्लास्क, पर्यवेक्षक, फ्लास्क-लॉगिन

मैं फ्लास्क / अजगर देव पर नया हूं लेकिन मुझे उपयोग करने की आवश्यकता हैमेरे सार्वजनिक DNS के लिए पॉवरडंस-एडमिन। फ्लास्क के साथ यह काम और मुझे पॉवरडंस-एडमिन के वेब पैनल को शुरू करने के लिए पर्यवेक्षक का उपयोग करने की आवश्यकता है। मुझे लगता है कि मैंने डायरेक्टरी या फ्लास्क को लॉन्च करने में कुछ गलतियां की हैं।

यह मेरा /opt/powerdns-admin/run.py है

#!/usr/bin/env python
from app import app
from config import PORT

try:
from config import BIND_ADDRESS
except:
BIND_ADDRESS = "127.0.0.1"

if __name__ == "__main__":
app.run(debug = True, host=BIND_ADDRESS, port=PORT)

यहां / ऑप्ट / पॉवरडन्स-एडमिन / ऐप / की 12 पहली लाइनेंइस में.py

from werkzeug.contrib.fixers import ProxyFix
from flask import Flask, request, session, redirect, url_for
from flask_login import LoginManager
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object("config")
app.wsgi_app = ProxyFix(app.wsgi_app)

login_manager = LoginManager()
login_manager.init_app(app)
db = SQLAlchemy(app)

और यह मेरा सुपरवाइजर कॉन्फिग है

[program:powerdnsadmin]
command = python /opt/powerdns-admin/run.py
directory = /opt/powerdns-admin/app
autostart = true
autorestart = true
stdout_logfile=/var/log/supervisor/program_powerdnsadmin.log
stderr_logfile=/var/log/supervisor/program_powerdnsadmin.error

लेकिन जब मैं एक पर्यवेक्षक अद्यतन करता हूं तो मुझे यह program_powerdnsadmin.error पर मिला

Traceback (most recent call last):
File "/opt/powerdns-admin/run.py", line 2, in <module>
from app import app
File "/opt/powerdns-admin/app/__init__.py", line 3, in <module>
from flask_login import LoginManager
ImportError: No module named flask_login

हालाँकि, जब मैं run.py को मैन्युअल रूप से लॉन्च करता हूँ तो यह ठीक है

infra@nameserver:~$ source ./flask/bin/activate
(flask) infra@nameserver:~$ python powerdns-admin/run.py
[INFO]  * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)

यह कुछ संस्करण हैं:

 pip show python
Name: Python
Version: 2.7.12
pip show flask
Name: Flask
Version: 0.11.1
pip show flask_login
Name: Flask-Login
Version: 0.3.2

मुझे उम्मीद है कि समाधान एक गूंगी बात है, मैं उस पर 4 दिनों से अवरुद्ध हूँ :(

धन्यवाद

उत्तर:

जवाब के लिए 2 № 1

आपका पर्यवेक्षक कॉन्फ़िगरेशन आपके बजाय आपके सिस्टम पायथन को लॉन्च कर रहा है flask वर्चस्व पायथन।

पर्यवेक्षक कमांड होना चाहिए:

command = ~/flask/bin/python /opt/powerdns-admin/run.py

मुझे यकीन नहीं है कि क्या ~ काम करता है, शायद आपको इसका विस्तार करना होगा।


जवाब के लिए 2 № 2

आप अपने फ्लास्क अनुप्रयोग के लिए एक आभासी वातावरण का उपयोग करने लगते हैं। हालाँकि आपके पर्यवेक्षक कॉन्फिगरेशन में आप अपने ग्लोबल पाइथन इंस्टॉलेशन के साथ ऐप शुरू करते हैं।

एक समाधान या तो सभी आवश्यक पैकेजों को अपने वैश्विक पायथन संस्करण में स्थापित करना है या आप पर्यवेक्षक से अपना आभासी वातावरण शुरू करते हैं और वहां अपना आवेदन चलाते हैं।

यदि आप एक से अधिक फ्लास्क ऐप रखते हैं तो मैं बाद वाला पसंद करता हूं। एक आसान तरीका एक बनाने के लिए है run.sh निम्नलिखित सामग्री के साथ अपने फ्लास्क आवेदन के विवरण के भीतर:

#!/bin/bash
source ./flask/bin/activate
exec python powerdns-admin/run.py

डॉन "इस स्क्रिप्ट को निष्पादन योग्य बनाना नहीं भूलता है $ chmod a+x run.sh और इस स्क्रिप्ट के फ़ाइल नाम के साथ अपनी कमांड सेटिंग को सुपरवाइज़र कॉन्फिगर फाइल में बदलें। इस तरह से पर्यवेक्षक आभासी वातावरण में आपके फ्लास्क एप्लिकेशन को स्टार्टअप करेगा।