Проблема с задержкой графического интерфейса PythonAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема с задержкой графического интерфейса Python

Сообщение Anonymous »

У меня большая проблема с кодом на Python. Пишу через переводчика, так как плохо знаю английский, а также пишу код на PyDroid 3 на телефоне, так как компьютера у меня нет.
Это мой код (сведен к корню проблемы, оставлен импорт):

Код: Выделить всё

import os
import random
import re

from datetime import datetime as dt
from bs4 import BeautifulSoup as bs
from translate import Translator as tr
import time as t
import requests as rq
from countryinfo import CountryInfo as ci
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.core.text import LabelBase
from kivy.uix.label import Label

LabelBase.register(name = "lucida", fn_regular = "/storage/emulated/0/Fonts/Lucida Console/lucidaconsole.ttf")
LabelBase.register(name = "fixedsys", fn_regular = "/storage/emulated/0/Fonts/Fixedsys/Fixedsys.ttf")

def check_internet_connection():
try:
print("\nПроверка подключения...")
check_internet = rq.get("https://www.google.com", timeout = 6)
if check_internet.status_code == 200:
os.system("clear")
return True
except rq.ConnectionError:
os.system("clear")
return False

def loading(root):
global ip
global data
global loc
global lat
global lon
global country
global country_info
global translate
global region
global city
global city_ru
global city_ru_e
global moon_phase
global moon_phase_name
global weather
global capital
global population
global area_country
global currency
global languages
global borders
global glasny
global soglasny

layout = BoxLayout(orientation = "vertical")
but = Button(text="Привет")
label = Label(text = "Hdhsuxj", font_name = "fixedsys")
root.add_widget(layout)
layout.add_widget(but)
layout.add_widget(label)

if check_internet_connection():
pass
else:
while True:
os.system("clear")
print("\nОтсутствует подключение к интернету!", end = "\r")
t.sleep(5)

print(blue, "Добро пожаловать!", reset)
print("\nЗагрузка ресурсов... 0%", end = "\r")

ip = rq.get("http://icanhazip.com").text.strip()
print("Загрузка ресурсов... 10%", end = "\r")
url_ip = f"https://ipinfo.io/{ip}"
resp_ip = rq.get(url_ip)
data = resp_ip.json()
print("Загрузка ресурсов... 15%", end = "\r")
loc = data.get('loc')
print("Загрузка ресурсов... 24%", end = "\r")
lat, lon = loc.split(',')
lat = lat.strip()
lon = lon.strip()
print("Загрузка ресурсов... 36%", end = "\r")
country = data.get('country').upper()
country_info = ci("ru")
translate = tr(to_lang = "ru")

if country != "RU":
while True:
os.system("clear")
print(red, "\n!ERROR!", reset)
print("\nThis app is not supported in your country...")
print("If you are in Russia, make sure your VPN is disabled!")
t.sleep(10)

print("Загрузка ресурсов... 39%", end = "\r")
region = data.get('region')
print("Загрузка ресурсов... 44%", end = "\r")
city = data.get('city')
city_ru = translate.translate(city)
city_check_letter = city_ru[-1].lower()

if city_check_letter in glasny:
city_ru_e = city_ru[:-1] + "е"
if city_check_letter in soglasny:
city_ru_e = city_ru + "e"

print("Загрузка ресурсов... 50%", end = "\r")
url_m = "https://phasesmoon.com/"
resp_m = rq.get(url_m)
print("Загрузка ресурсов...  61%", end = "\r")
html_m = resp_m.text
soup_m = bs(resp_m.content, 'html.parser')
moon = soup_m.find("section", class_ = "pargraph")
moon_phase = moon.find("strong", string = lambda text: "%" in text).text
moon_phase_name = moon.find("strong").text
city_low = city.lower()
url_w = f"https://www.ventusky.com/ru/{city_low}"
resp_w = rq.get(url_w)
html_w = resp_w.text
soup_w = bs(html_w, 'html.parser')
weather_get = soup_w.find_all(class_ = "temperature")
weather = weather_get[0].get_text().strip()
print("Загрузка ресурсов... 73%", end = "\r")
country_info = ci("Russia")
capital = country_info.capital()
languages = country_info.languages()
population = country_info.population()
area_country = country_info.area()
currency = "".join(country_info.currencies())
borders = country_info.borders()
print("Загрузка ресурсов... 78%", end = "\r")
url_c = f"https://www.investing.com/currencies/usd-{currency}"
resp_c = rq.get(url_c)
html_c = resp_c.text
soup_c = bs(html_c, "html.parser")
currency_now_get = soup_c.find_all("script")[2]
print(currency_now_get)

class Prototype(App):
def build(self):
root = BoxLayout(orientation = "vertical")
loading(root)
return root

if __name__ == "__main__":
Prototype().run()
Проблема в том, что графический интерфейс запускается с задержкой от 5 до 7 секунд. Запускаю скрипт, черный экран (хотя графические элементы уже должны появиться) держится около 7 секунд и только потом они появляются. Я попробовал потоковую передачу, но проблема не устранена. Я относительно новичок в Python.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -lag-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»