ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° python
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python
ΠΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ ΡΠΆΠ΅ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ. ΠΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π΄ΡΠΌΠ°Π»ΠΈ ΠΎΠ± ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ.
ΠΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ, Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PyPI) β ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ΅. Π₯ΠΎΡΡ Π½ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅, Π½ΠΈ Π²ΡΠΎΡΠΎΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ Π·Π°ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΡΡΡΠ΄Π½ΡΠΌ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ CLI Π½Π° Python ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² PyPI.
ΠΠ°ΡΠ°Π»ΠΎ
ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ Ρ Π·Π°Π½ΡΠ»ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ open-source ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Ρ ΠΎΡΡ ΠΈΠΌΠ΅ΡΡ Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ open-source ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Π² ΠΎΡΠΊΡΡΡΡΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΡΠ°Ρ , ΠΊΠ°ΠΊ CVE, NVD, WhiteSource Vuln ΠΈ Ρ.Π΄.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠΊΡΠ΅ΠΉΠΏΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Ρ ΡΠ°ΠΉΡΠ° CVE, ΠΎΠ±Π΅ΡΠ½Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ Π½Π° PyPI.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ:
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΎΡΡ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΡΡ ΡΡΡΡΠΊΡΡΡΡ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠΊΡΠ΅ΠΉΠΏΠ΅ΡΠ°
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ°ΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ CVE, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π΅Π±-ΡΠΊΡΠ΅ΠΉΠΏΠ΅Ρ. ΠΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ . ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΡΠ΅ΠΉΠΏΠ΅Ρ Π² Requests ΠΈ BeautifulSoup. ΠΠΎΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π½Π°Ρ ΡΠΊΡΠ΅ΠΉΠΏΠ΅Ρ:
1. ΠΈΡΠΊΠ°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ;
2. ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ Π½Π° CVE.
ΠΠΎΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· URL ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Python:
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΡΠΌΠΎΡΡΠΈΡΠ΅ΡΡ ΠΊ DOM-ΡΡΡΡΠΊΡΡΡΠ΅ Π²ΡΡΠ΅, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ, Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ. Π’Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ:
1. ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π² SEARCH_URL Ρ ΠΏΠΎΠΌΠΎΡΡΡ Requests ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ DOM-ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅;
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π΅Π΅ CVE-ID ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ID.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΠΈΡΡΠ»Π΅Π΄ΡΠΉΡΠ΅ DOM-ΡΡΡΡΠΊΡΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Click.
Click β ΡΡΠΎ Python-ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ Python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ CLI, ΠΈ Ρ Π½ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Click ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ β ΠΎΡ ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ Π΄ΠΎ Π½Π°Π²ΠΎΡΠΎΡΠ΅Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Heroku).
Π Π½Π°ΡΠ΅ΠΌ CLI ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
1. ΠΏΠΎΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ;
2. ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
Π ΠΏΠ°ΠΏΠΊΠ΅ cver ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ __main__.py ΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
ΠΠΎΠΈΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° search ΠΈΠ· Π²Π΅Π±-ΡΠΊΡΠ΅ΠΉΠΏΠ΅ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ keyword ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ:
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΡΠΎΠ²ΠΎ! ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡ Ρ CVE.
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° PyPI
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ Π² Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° PyPI Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°
ΠΡΠΊΡΠΎΠΉΡΠ΅ setup.py Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° README.md Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· requirements.txt ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°Ρ ΡΠ°ΠΉΠ» requirements.txt Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ:
Π ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ. ΠΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
1. name β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π° PyPI;
2. version β ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°;
ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ README.md :
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° PyPI
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° PyPI. ΠΡΠ΅ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, Π΅ΡΡΡ Π»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° PyPI. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ Π½Π΅ΠΌΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ PyPI. ΠΡΠΎΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅
Python-ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° PyPI, Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ Β«Π³ΠΎΠ»ΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°. ΠΠ½ΠΈ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ. Π‘Π°ΠΌΡΠΌΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Π² Python ΡΠ²Π»ΡΡΡΡΡ Wheels ΠΈ Source Archives.
Wheels β ΡΡΠΎ zip-Π°ΡΡ ΠΈΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ. Source Archives ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π² tar-Π°ΡΡ ΠΈΠ².
ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ:
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ PyPI Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Π°ΡΡ ΠΈΠ²Ρ Wheels ΠΈ Source Archives.
ΠΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ dist :
ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Twine. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ PyPI:
ΠΠ°ΡΠ΅ΠΌ Ρ Π²Π°Ρ ΡΠΏΡΠΎΡΡΡ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΡΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ ΠΎΠ½ Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ· TestPyPI Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π² Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅:
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠΎΡ ΠΈ Π²ΡΠ΅!
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π·:
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ! ΠΠ°Ρ ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° PyPI. ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ!
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΠ» ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python.
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python Π΄Π»Ρ Android. ΠΠ΅Ρ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΌΠ°Π½ΡΠ°Π» Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ sl4a, ΡΡΠΎ ΠΌΠ°Π½ΡΠ°Π» ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ UI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ apk ΠΈ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π½Π° Android Market. ΠΠ°ΠΎΠ΄Π½ΠΎ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΡ Π²Π°Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° google.play, ΡΡΠΎ Π½Π΅ hello world, Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΎΠ², Ρ ΠΎΡΡ ΠΈ ΡΠ·ΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅.
ΠΠ°ΡΠ½Ρ ΡΠ°ΡΡΠΊΠ°Π· ΠΏΠΎΠΆΠ°Π»ΡΠΉ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π·Π°Π²Π΅ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΠΌ ΠΎ ΡΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π»ΠΎΡΡ.
isortViewer
ΠΠ½Π΅ ΠΊΠ°ΠΊ ΡΠΎΡΠΎΠ³ΡΠ°ΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈ ΠΎΡΠ±ΠΎΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ. ΠΠ΅ Π²ΡΠ΅Π³Π΄Π° Ρ
ΠΎΡΠ΅ΡΡΡ ΡΠΈΠ΄Π΅ΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ Π΅ΡΡΡ Π½ΠΎΡΡΠ±ΡΠΊ, ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡΠ΅Ρ, Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΄Π° Π΄Π΅ΡΡΡΠΊΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ raw ΠΈΠ»ΠΈ jpeg ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΠΏΠΎΡΠΎΠΌ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ β ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ isortManager ΠΈ isortViewer, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΈ ΠΌΠ½Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈ ΠΎΡΠ±ΠΎΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ. Π’Π΅ΠΏΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΡΠ±ΠΎΡΠΎΠΌ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ Ρ ΠΌΠΎΠ³Ρ Π»Π΅ΠΆΠ° Π½Π° ΠΏΠ»ΡΠΆΠ΅ Π΄ΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΡΠΊΡΡΠ°Ρ Π² ΠΏΡΠΎΠ±ΠΊΠ΅ π
ΠΠΎΠΏΠΈΠΏΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠ°ΡΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ²:
isortViewer β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±ΡΡΡΡΠΎΠΉ ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΡΠΈ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ (raw ΠΈΠ»ΠΈ jpg) Ρ ΡΠΎΡΠΎΡΠ΅ΡΡΠΈΠΉ Π½Π° Π²Π°ΡΠΈΡ
android ΡΠΌΠ°ΡΡΡΠΎΠ½Π°Ρ
ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ
. ΠΡΠΈ ΡΡΠΎΠΌ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ jpg ΠΈΠ»ΠΈ raw ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΡΠΎΡΡΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ isortManager Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ Π² ΠΎΠ΄ΠΈΠ½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ°:
1. Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ isortManager Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°;
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΌΠ°ΡΡ: jpg ΠΈ raw (cr2, nef, orf ΠΈ Ρ.Π΄.). Π ΠΈΡΠΎΠ³Π΅ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 150 ΠΌΠ± Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ, Π±ΡΠ΄Ρ ΡΠΎ jpg ΠΈΠ»ΠΈ raw ΡΠΎΡΠΌΠ°Ρ);
3. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π½Π° Π²Π°ΡΠ΅ android ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π² isortViewer. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Β«Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅Β», Π° ΡΠ°ΠΊ ΠΆΠ΅, ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΈ ΠΎΡ 1 Π΄ΠΎ 5 Π·Π²Π΅Π·Π΄;
4. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² isortManager. ΠΡΠΎΠΌΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ
ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Ρ Β«5 Π·Π²Π΅Π·Π΄Β» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠ°ΠΏΠΊΡ Β«ΡΠ΅Π΄Π΅Π²ΡΡΒ», Π° Β«1 Π·Π²Π΅Π·Π΄Π°Β» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΡ Β«Ρ
Π»Π°ΠΌΒ».
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π° google.play, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠ½Π΅ΠΉΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ.
ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅!
ΠΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΎΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ python Π»ΡΡΡΠΈΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠΈΡΠ΅ ΠΊΡΠΎΠΌΠ΅ python Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Ρ, ΡΠ΅ΡΠ΅Π½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° python.
isortManager
Π‘ isortManager Π΄Π»Ρ PC ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GUI ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ windows ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΠΊΠ°ΡΠ°Π½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ: Ρ ΠΏΠΎΠΌΠΎΡΡΡ dcraw Π²ΡΠ΄ΠΈΡΠ°Π΅Ρ jpg ΠΏΡΠ΅Π²ΡΡΡΠΊΠΈ ΠΈΠ· raw ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΡΠ°ΠΉΠ·ΠΈΡ ΠΈΠ· Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. ΠΡΠ» ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½ ΡΠ²ΠΎΠΉ Π²Π΅ΡΠΎΠ»ΠΈΠΏΠ΅Π΄ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ (ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΎΡΠΌΠ΅ΡΠΊΠ° Β«Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅Β» ΠΈ ΠΎΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ΠΉΡΠΈΠ½Π³Π°), ΡΠ°ΠΊ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, zip ΠΈΠ»ΠΈ tar ΡΠΎΡΠΌΠ°Ρ, Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π² Π°ΡΡ ΠΈΠ²Π΅ (ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅), ΡΡΠ΅Π±ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ². Π€Π°ΠΉΠ»Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ΄ΡΡΠ΄ ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ½ΡΠΉ repr ΠΏΠΈΡΠΎΠ½ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ) Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ°Π»Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ»ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΈΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . GUI Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Tkinter (Π»ΡΠ±Π»Ρ Ρ Π΅Π³ΠΎ Π·Π° Π±ΡΡΡΡΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π·Π° ΠΌΠ°Π»ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ), Π²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΊΡΠΈΠ½ΡΠΎΡ:
Π Π΄Π°, Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π° linux, ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΌ Π½Π° windows )
isortViewer Π΄Π»Ρ android
ΠΡΠ΅Π³ΠΎ Ρ Π½Π°ΡΠ΅Π» Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΡΡΠ°Π²ΠΈΡΡ python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° android, ΡΡΠΎ pygame for android ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ kivy.
Pygame β Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ, Π²ΡΠ΅ UI ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ, ΡΡΠΎ ΠΎΡΠ½ΡΠ»ΠΎ Π±Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ kivy. ΠΡΠ°ΠΊ:
ΠΡΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠΎΡΠΊ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ windows, linux, MacOS, android ΠΈ iOS. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΡΠ°Ρ, UI ΡΠΈΡΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· OpenGL, Π·Π½Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅. Π£Π²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Kivy Showcase. ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ±ΡΠΎ ΠΈΠ»ΠΈ Π°ΠΊΡΠ΅Π»Π΅ΡΠΎΠΌΠ΅ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ android.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ linux, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, apk ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΉ OS.
Hello World Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠΈΡΠ΅ΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΡΠ΅Ρ
Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
. ΠΡΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ IDE ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, Π·Π°ΠΏΡΡΠΊ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ ΠΏΡ. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ ΠΆΠ΅ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Kivy Launcher, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅. ΠΠ΅Π±Π°ΠΆΠΈΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ adb logcat.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ android, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Ρ Π½Π° PC, Π½ΠΎ Ρ
ΠΎΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° android, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ:
Π‘Π±ΠΎΡΠΊΠ° apk Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΅Π»ΠΈΠ·Π°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΌΠ°Π½ΡΠ°Π») ΠΈ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π² google play.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅, Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Ρ Π½ΡΠ»ΡΒ», ΡΠ°ΡΠΆΠ΅Π²ΡΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΡΠΊΡ ΠΊΠΎΠ΄Π°.
Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΡΠ°Π·Ρ ΠΏΡΠ΅ΡΠ΅ΡΡ Ρ
ΠΎΠ»ΠΈΠ²Π°ΡΡ Π½Π° ΡΠ΅ΠΌΡ Β«Π΄Π»Ρ android ΡΠΎΠ»ΡΠΊΠΎ java, python Π½Π΅ Π½ΡΠΆΠ΅Π½Β». Π― ΡΡΠΈΡΠ°Ρ, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ», Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΡΠΎΠ± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ.
Π‘ΡΠ΅ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ kivy ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ. Π‘Π΅ΠΉΡΠ°Ρ Π½Π° ΠΌΠΎΠ΅ΠΌ ΡΡΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
ΠΏΠΎΠ΄ Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ python Ρ ΡΡΠ΅ΠΌΠ²ΠΎΡΠΊΠΎΠΌ kivy ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ΅Π±Ρ Ρ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ²Π½ΠΎ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Ρ, Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ ΡΠ΅ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΡΠ΅Π½ΡΡΠΎΠ². ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΈΠΎΡΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° Π΄Π΅ΡΠ΅Π²ΡΠ΅ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π½ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΡΡΡ Π² Ρ
ΠΎΠ»Π»Π΅. ΠΠ»ΠΈΠ΅Π½Ρ Π½Π°Π±ΠΈΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΊΠ°Π·Π°, Π΄Π°Π»Π΅Π΅ ΠΏΠΎ WiFi ΠΏΠ»Π°Π½ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΡΠ°ΡΡΡ Π·Π°ΠΊΠ°Π·Π°.
ΠΠ΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python: UI ΠΈ ΡΠΈΠ³Π½Π°Π»Ρ
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
ΠΠ΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python: UI ΠΈ ΡΠΈΠ³Π½Π°Π»Ρ
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Python Π½Π΅ Π»ΡΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π² 2016 Π³ΠΎΠ΄Ρ Ρ ΡΠΎΠ±ΠΈΡΠ°Π»ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΡΠΎΠ² ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Google ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Π» ΠΌΠ½Π΅, ΡΡΠΎ Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ blender3d, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python.
ΠΠΎ Π»ΡΠ΄ΠΈ, Π½Π΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π²ΠΈΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΠ΄Π»ΠΈΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΠ°ΡΡΠΌΠΈ, ΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΡΡΡΡ ΠΌΠΎΠ»ΠΎΠ΄ΡΠΆΠΈ. Π― Π½Π°Π΄Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΡΡΠΎΡΠΈΠ°Π»Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PyQt (ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ Β«ΠΠ°ΠΉ-ΠΡΡΡβΒ»β). ΠΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Qt, ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ C++. Qt ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΠ΄Π΅Π»Π°Π½Ρ blender3d, Tableau, Telegram, Anaconda Navigator, Ipython, Jupyter Notebook, VirtualBox, VLC ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΄ΡΡΡΠ°ΡΡΠ΅Π³ΠΎ Tkinter.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ PyQt. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PyQt Π²Π΅ΡΡΠΈΠΈ 5.15. ΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΡΠΎ Π·Π°ΠΉΠΌΡΡ ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ.
Hello, World!
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΌΡ Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ helloApp. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» main.py, Π»ΡΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ vscode, ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅Ρ QGuiApplication ΠΈ QQmlApplicationEngine ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Qml Π²ΠΌΠ΅ΡΡΠΎ QtWidget Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ UI ΡΠ»ΠΎΡ Π² Qt ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ, ΠΌΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ UI ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡ ΠΎΠ΄Π° ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΠΎΠ±Π° Π·Π°ΠΊΡΠΎΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΌΡΡ Π²ΡΡ ΠΎΠ΄. ΠΠ°ΡΠ΅ΠΌ, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ qml ΡΠ°ΠΉΠ» Π΄Π»Ρ Qml UI. ΠΡΠ·ΠΎΠ² app.exec(), Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ sys.exit, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² sys.exit.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² main.qml:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ, Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. ΠΠ±ΡΠ΅ΠΊΡ Text ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΎΠΊΠ½Π°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ UI
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ UI, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΅ΠΌΡ:
ΠΠ½ΡΡΡΠΈ ΡΠΈΠΏΠ° ApplicationWindow Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½Π°, ΡΠΈΠΏ Rectangle Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΠΊΠ½Π°. ΠΠ½ΡΡΡΠΈ Π½Π΅Π³ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΠΏ Image ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ Rectangle ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ. ΠΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π»Π΅Π²ΡΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ³ΠΎΠ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΡΡΡΠΏΡ:
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ
ΠΠΎΠ΄ΡΠ»Ρ gmtime ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, Π° strftime Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Ρ Π² ΡΡΡΠΎΠΊΡ. ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈΡ :
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠΎΠΊΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ:
Π‘ΡΡΠΎΠΊΠ° «%H:%M:%S» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΡ Π² 24 ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, Ρ ΡΠ°ΡΠ°ΠΌΠΈ ΠΌΠΈΠ½ΡΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠΈ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ strtime).
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ property Π² qml ΡΠ°ΠΉΠ»Π΅, Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡ Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ currTime.
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ curr_time ΠΈΠ· pyhton Π² qml:
ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Python Π² UI.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ QObject. ΠΠ°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ Backend.
Π£ Π½Π°Ρ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ curr_time, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ backend ΡΠΈΠΏΠ° QtObject Π² ΡΠ°ΠΉΠ»Π΅ main.qml.
ΠΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Python Π² qml:
Π qml ΡΠ°ΠΉΠ»Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ QtObject ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ) ΠΈΠ· Python.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΈΠΏ Connections ΠΈ ΡΠΊΠ°ΠΆΠ΅ΠΌ backend Π² Π΅Π³ΠΎ target. Π’Π΅ΠΏΠ΅ΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² backend.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΡΠ²ΡΠΆΠ΅ΠΌ qml ΠΈ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈΠ· Python.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΈ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ UI. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ΄Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π° Π²ΡΠΎΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π₯ΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ _.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ pyqtsignal ΠΈ Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ updated, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ updater.
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ updated ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ arguments, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ Β«updaterΒ». Qml Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΠ½ΠΊΡΠΈΠΈ updater ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ emit ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π΅ΠΌΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ±Π½ΠΎΠ²ΠΈΠΌ qml, ΠΏΠΎΠ»ΡΡΠΈΠ² ΡΠΈΠ³Π½Π°Π», Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Β«onΒ» ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠ³Π½Π°Π»Π°:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΎΡΡΠ°Π»ΠΎΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ updater. Π Π½Π°ΡΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΠΈΠ³Π½Π°Π»Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π½Π° ΠΎΠ΄Π½Ρ Π΄Π΅ΡΡΡΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π€ΡΠ½ΠΊΡΠΈΡ bootUp Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ UI:
ΠΡΡ Π³ΠΎΡΠΎΠ²ΠΎ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΌΠΊΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² qml ΡΠ°ΠΉΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
Π’Π°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΉΠ» main.py:
ΠΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.qml:
Π‘Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ pyinstaller.
Π§ΡΠΎΠ±Ρ Π² ΡΠ±ΠΎΡΠΊΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» spec:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΉΠ»Π° spec
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ datas ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ target path(ΠΎΡΠΊΡΠ΄Π° Π±ΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ) ΠΈ destination path(Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). destination path Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. Π§ΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Ρ exe-ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ datas, Π½Π° ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Ρ UI:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ console ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π² false, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ name Π²Π½ΡΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° Exe, ΡΡΠΎ ΠΈΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. name Π²Π½ΡΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° Collect, ΡΡΠΎ ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΌΠ΅Π½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ spec β main.py.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ:
Π ΠΏΠ°ΠΏΠΊΠ΅ dist ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠ°ΠΏΠΊΠ° main. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠ» main.exe.
Π’Π°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Python:
Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Qt Designer Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ UI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python ΡΠΈΡΠ°ΠΉΡΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅.
Python ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π’ΠΎΡ, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ (Machine Learning, ML), ΠΎΠ±ΡΡΠ½ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: ΡΠ±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΈΡ ΠΎΡΠΈΡΡΠΊΠ°, ΡΠ°Π·Π²Π΅Π΄ΠΎΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΠΎΡ Ρ ΠΎΡΠΎΡΠ΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΡΠ΅ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΡΠ°ΠΏ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ML-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ½ ΡΠ°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ°ΠΉΠ΅Π½ΡΠΈΡΡΠΎΠ² ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΏΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΠΏΡ. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ Django ΠΈΠ»ΠΈ Flask. ΠΠ»Π°Π²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π±ΡΡΡΡΡ ΠΎΡΠΎΠ±ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ, ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π½Π΅ΠΌΠ°Π»ΡΡ Π·Π°ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, Ρ ΠΎΡΠ΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ streamlit, pandas ΠΈ scikit-learn, ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 50 ΡΡΡΠΎΠΊ. Π‘ΡΠ°ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠΊΠΎΡΠΈΡΡ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ ML-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ±Π·ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ Π²ΠΈΠ΄ ΡΠ²Π΅ΡΠΊΠ° ΠΈΡΠΈΡΠ°
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²Π΅ΡΠΊΠΈ ΠΈΡΠΈΡΠ° ΠΈΠ· Π²ΡΠ±ΠΎΡΠΊΠΈ Π€ΠΈΡΠ΅ΡΠ°, ΠΎΡΠ½ΠΎΡΡ ΠΈΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ Π²ΠΈΠ΄ΠΎΠ²: ΠΈΡΠΈΡ ΡΠ΅ΡΠΈΠ½ΠΈΡΡΡΠΉ (iris setosa), ΠΈΡΠΈΡ Π²Π΅ΡΡΠΈΠΊΠΎΠ»ΠΎΡ (iris versicolor), ΠΈΡΠΈΡ Π²ΠΈΡΠ³ΠΈΠ½ΡΠΊΠΈΠΉ (iris virginica). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ML-ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΡΠΎ, ΡΡΠΎ Ρ ΡΡΡ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ. ΠΠ΅Π΄Ρ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ β ΠΎΠ½ ΠΊΠ°ΠΊ Β«lorem ipsumΒ» β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² ΠΌΠ°ΠΊΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Ρ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ streamlit, pandas ΠΈ scikit-learn. ΠΠ·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΎΠ±ΡΡΡ ΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ: ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΈ Π±ΡΠΊΠ΅Π½Π΄.
ΠΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅, Π±ΡΠ΄Π΅Ρ Π±ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ°ΡΡΡ ΡΠ»Π΅Π²Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ²Π΅ΡΠΊΠΎΠ² ΠΈΡΠΈΡΠ°: Π΄Π»ΠΈΠ½Π° Π»Π΅ΠΏΠ΅ΡΡΠΊΠ° (petal length), ΡΠΈΡΠΈΠ½Π° Π»Π΅ΠΏΠ΅ΡΡΠΊΠ° (petal width), Π΄Π»ΠΈΠ½Π° ΡΠ°ΡΠ΅Π»ΠΈΡΡΠΈΠΊΠ° (sepal length), ΡΠΈΡΠΈΠ½Π° ΡΠ°ΡΠ΅Π»ΠΈΡΡΠΈΠΊΠ° (sepal width). ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π±ΡΠΊΠ΅Π½Π΄Ρ, Π³Π΄Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²Π΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ²Π΅ΡΠΊΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π²ΠΈΠ΄. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Ρ.
Π Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎ, ΡΡΠΎ Π²Π²ΡΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π΄Π°ΡΠ°ΡΡΠ΅ΠΉΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . Π Π½Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Β«ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π»Π΅ΡΒ» ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ scikit-learn. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠ΄Π΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ , Π²Π²Π΅Π΄ΡΠ½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠΎ Π΅ΡΡΡ β Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π° ΡΠ²Π΅ΡΠΊΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎ Π²ΠΈΠ΄Π΅ ΡΠ²Π΅ΡΠΊΠ°, Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠ΅ΠΊΡ Ρ Π½Π°Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΠΎΠΌΠ½ΡΠΉ. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ 50 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°. Π Π΅ΡΠ»ΠΈ ΡΠΎΡΠ½Π΅Π΅ β ΡΠΎ ΠΈΡ ΡΡΡ Π²ΡΠ΅Π³ΠΎ 48. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Β«ΡΠΏΠ»ΠΎΡΠ½ΠΈΡΡΒ», ΠΈΠ·Π±Π°Π²ΠΈΠ²ΡΠΈΡΡ ΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ, ΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠΊΡΠ°ΡΠΈΡΡΡ Π΄ΠΎ 36 ΡΡΡΠΎΠΊ.
Π Π°Π·Π±ΠΎΡ ΠΊΠΎΠ΄Π°
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄.
βΠΠΌΠΏΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
βΠ€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ
βΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π²ΠΈΠ΄Π΅ ΡΠ²Π΅ΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ.
βΠ€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΠΈΠ΄Π°Ρ ΡΠ²Π΅ΡΠΊΠΎΠ².
ΠΡΠ²ΠΎΠ΄ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ΅ΡΠ²ΡΡΡΠΎΠ³ΠΎ (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ) ΡΠ°Π·Π΄Π΅Π»Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΠ΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΠΏΡΡΠΊ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²ΡΡ ΠΈΠ΄ΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’ΠΎ, ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ.
Π‘ΠΊΡΠΈΠ½ΡΠΎΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ²Π΅ΡΠΊΠΎΠ² ΠΈΡΠΈΡΠ°. ΠΡΠ»ΠΈ ΡΡΠ»ΠΊΠ½ΡΡΡ ΠΏΠΎ ΡΡΡΠ΅Π»ΠΊΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΠΎΠΊΠ½Π°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ°, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠ° Π±ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ
ΠΡΠΎΠ³ΠΈ
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΠΏΠΎΠ·Π΄ΡΠ°Π²ΠΈΡΡ: ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΡΠΌ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ ML-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π° Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ²ΠΎΡΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ (ΠΏΡΠ°Π²Π΄Π°, Π²Ρ, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅).
ΠΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π»ΠΈ Π²Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ streamlit?