500 ошибка при импорте модулей в файл __init__.py
Всем привет. Только начинаю осваивать Python и взаимодействие с серверами. Столкнулся с одной проблемой, которую не могу решить уже второй день. У меня есть сервер Debian, на который я установил Apache и Flask. Пытаюсь получать параметры из URL адреса, при обращении на сервер, а затем передать их в Telegram. Сделал настройку согласно этой крутой инструкции https://www.8host.com/blog/razvyortyvanie-prilozheniya-flask-na-servere-ubuntu/
Все работает прекрасно, пока я не пытаюсь импортировать в файл init.py любые модули, например import telebot или requests. После добавления модулей, я регулярно получаю 500 ошибку. У меня есть подозрения, что файл init.py не предназначен для написания кода, а только для его инициализации. Тогда возникает вопрос, как я могу добавить другие файлы.py в эту систему, чтобы они корректно работали.
Для настройки сервера, я использую следующиую последовательность команд:
[Forwarded from Свой Человек]
Установить Sudo apt install sudo
Обноваить пакеты sudo apt update sudo apt upgrade -y
Установка пакетного менеджера pip sudo apt install python3-venv
Установка Apache sudo apt install apache2
Установка брандмауэра UFW sudo apt install ufw
Разрешаем SSH подключение sudo ufw allow ssh
Открываем 80 и 443 порты sudo ufw allow 'WWW Full'
Включаем UFW фаервол sudo ufw enable
Проверяем SFTP на доступность
Проверка сервера Apache sudo systemctl status apache2
Установка mod_wsgi sudo apt-get install libapache2-mod-wsgi python-dev
Запускаем mod_wsgi sudo a2enmod wsgi
Переходим в директорию WWW cd /var/www
Создаем каталог sudo mkdir FlaskApp cd FlaskApp
Создаем еще один каталог в этом sudo mkdir FlaskApp
Создаем еще 2 подкаталога sudo mkdir static templates
Создаем файл скрипта .py sudo nano init.py
Добавляем код в файл
from flask import Flask app = Flask(name) @app.route("/") def hello(): return "Hello, I love Digital Ocean!" if name == "main": app.run()
Устанавливаем pip для Python3 sudo apt install python3-pip
Устанавливаем virtualenv sudo pip3 install virtualenv
Создаем в этой папке виртуальное окружение sudo virtualenv myvenv
Запускаем виртуальную среду myvenv source myvenv/bin/activate
Устанавливаем Flask sudo pip3 install Flask
Проверяем работу sudo python3 init.py
Настройка виртуального хоста sudo nano /etc/apache2/sites-available/ReplaceApp.conf
Добавляем в файл следующие данные
<VirtualHost *:80> ServerName 138.124.187.85 ServerAdmin [email protected] WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi <Directory /var/www/FlaskApp/FlaskApp/> Order allow,deny Allow from all Alias /static /var/www/ReplaceApp/ReplaceApp/static <Directory /var/www/ReplaceApp/ReplaceApp/static/> Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
Сохраняем и закрываем. Директория: cd var/www/FlaskApp/FlaskApp source venv/bin/activate 28. Включение виртуального хоста sudo a2ensite FlaskApp 29. Создание файла .wsgi cd /var/www/FlaskApp sudo nano flaskapp.wsgi 30. В файл сохраняем следующие данные
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
from FlaskApp import app as application
application.secret_key = 'Add your secret key'
- Перезапускаем Apache sudo service apache2 restart
Код, который работает ниже:
from flask import request
app = Flask(__name__)
@app.route('/')
def postback():
username = request.args.get('username')
if username != "":
return username
if __name__ == "__main__":
app.run()
Код который не работает ниже:
from flask import request
import telebot
import requests
bot = telebot.TeleBot("1507501961:AAFi0lwzOKpVIQux4liBKuB2g7WUf5He8VM")
app = Flask(__name__)
chateid = "348103174"
@app.route('/')
def postback():
username = request.args.get('username')
if username != "":
bot.send_message(chateid, text=username)
return username
if __name__ == '__main__':
app.run()```