ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° python-script-service ΡΠ΅ΡΠ²ΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ΅ /docker-volume/python-script-service ΡΠ΅ΡΠ²ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» start-script.sh β ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π½ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½ΡΠΆΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ python ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΡΠΈ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΡΡ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ):
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ Linux ΡΠ΅ΡΠ²ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΡ "/usr/bin/python", Π° ΠΏΠΎΠ΄ Windows "C:\Program Files (x86)\Python38-32\python".
ΠΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "SCRIPTEXECUTOR_PythonPath", ΡΠΎ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΡΡ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°.
Π ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° Π΅ΡΡΡ ΡΠ°ΠΉΠ» config.json, Π΅ΡΠ»ΠΈ Π² Π½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° "PythonPath", ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΠΎΠ½ΠΎ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² Π·Π°ΠΊΡΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΠ΅
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ bash-ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΠΎΠ΄ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π²ΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ (Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°), ΡΠΎ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΡΡΡΠΎΠΈΡΡ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ offline-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:Β https://help.ubuntu.com/community/AptGet/Offline/Repository/.
Π Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ wheel:Β https://dizballanze.com/ru/python-wheels-dlia-bystroi-ustanovki-zavisimostei/.
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:Β https://www.tecmint.com/install-python-in-linux/.
ΠΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ±ΡΠ°ΡΡ?
Π£ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΡ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π½Π΅Π»ΡΠ·Ρ Π΄Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΠΎΠΈ Π½ΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ±ΠΎΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠ±ΡΠ°ΡΡ, ΡΠΎ Π½ΠΈΠΆΠ΅ Π΄Π°Π½Ρ Π½Π°ΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ python-ΠΏΠ°ΠΊΠ΅Ρ
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ python-ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ wheel β Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ pip. ΠΠΎΠΈΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° ΡΠ°ΠΉΡΠ΅:Β https://pypi.org/Β ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ΅ΡΠ΅Π· pip Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π° Π΄Π°Π»ΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ pytorch ΡΠ΅ΡΠ΅Π· wheel ΠΈ Π·Π°ΡΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΠ°ΠΆΠ½ΡΠΌ Π½ΡΠ°Π½ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· wheel ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΡΠ°Π²ΠΈΡΠ΅ ΠΈ ΡΠ²Π½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΠ°ΠΉΠ» requirements.txt. Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ΡΠ΅Π· pip Π½Π° ΡΠ²Π΅ΠΆΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² (Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Ubuntu Bionic) ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ°Π²ΡΡΡΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π· pip ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅Π»ΡΠ·Ρ ΠΈ ΠΎΠ½ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ubuntu, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΡΠ»Π°ΠΉΠ½-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΎΠ½ ΡΠΎΠΆΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΊΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΠΈΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ°ΠΌ Π½Π΅Ρ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ google.com.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ python-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½ΠΈΠΆΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½ΡΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ Π²Π΅ΡΡΠΈΠΈ python:Β https://www.python.org/downloads/release/.
Π― Π±ΡΠ΄Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ 3.7.5:Β https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz.
ΠΠ° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΡ :
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, ΠΈ ΠΊΠ»Π°Π΄ΡΠΌ ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
tar xJf Python-3.7.5.tar.xz
ΠΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π² ΡΠ°ΠΉΠ» start-script.sh:
/mnt/volume/Python-3.7.5/configure make -CΒ /mnt/volume/Python-3.7.5 make -CΒ /mnt/volume/Python-3.7.5 install
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ python 3.7.5.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΅Π³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² config.json ΡΠ΅ΡΠ²ΠΈΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°: "/usr/local/bin/python3".
Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ python:
import sys print(sys.version)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° pytorch Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python 2.7 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ wheel
Π Π°Π±ΠΎΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡΒ
1.1 Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ python, pip ΠΈ wheel:
# apt-get update && apt-get install -y python-pip # pip install wheel
1.2 Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠ°ΠΏΠΊΡ wheels2:
# mkdir wheels2
1.3 Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°ΠΉΠ»Β requirements.txt:
# touchΒ requirements.txt
1.4 ΠΠ° ΡΠ°ΠΉΡΠ΅ pytorch ΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· pip:Β https://pytorch.org/get-started/locally/#start-locally.
ΠΠ»Ρ python 2 Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:Β
# pip install torch==1.3.1+cpu torchvision==0.4.2+cpu -fΒ https://download.pytorch.org/whl/torch_stable.html
ΠΡΠΏΠΎΠ»Π½ΡΡΡ Π΅Ρ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·ΡΠΌΡΠΌ ΠΎΡΡΡΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ.
1.5 Π ΡΠ°ΠΉΠ»Β requirements.txt Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ (Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠ½ΠΊΡΠ°):
torch==1.3.1+cpu torchvision==0.4.2+cpu
1.6 ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
# pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html --user
(ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: #Β pip install -r requirements.txtΒ {Π²Π°ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ· pip install}Β --userΒ )
# pip wheel -w wheels2/ -r requirements.txt --pre -f https://download.pytorch.org/whl/torch_stable.html
(ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: #Β pip wheel -w wheels2/ -r requirements.txt --preΒ {Π²Π°ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ· pip install} )
1.7. ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Β requirements.txt Π² ΠΏΠ°ΠΏΠΊΡΒ wheels2.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅Β wheels2, ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΡΡΒ ΠΏΠ°ΠΏΠΊΡ Π½Π° Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
2. Π Π°Π±ΠΎΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ (Π² Π·Π°ΠΊΡΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΠ΅)
2.1 ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡΒ wheels2Β Π² ΠΏΠ°ΠΏΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Ρ Ρ ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π² ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π² ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠ°:
/docker-volume/python-script-service
ΠΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
2.2 ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΉΠ»Β start-script.sh (Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ΅Β /docker-volume/python-script-serviceΒ ).
Π ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΡΠΊΡ:
pip install --no-index -f /mnt/volume/wheels2/ -r /mnt/volume/wheels2/requirements.txt
2.3 ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ pytorch.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΠ² Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ:
import torch result = torch.cuda.is_available()
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° pytorch Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° python 3.6 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ wheel
ΠΠ° ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ python 3, pip ΠΈ wheel.
apt-get update && apt-get install -y python3-pip pip3 install wheel
ΠΠ° ΡΠ°ΠΉΡΠ΅ pytorch ΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· pip:Β https://pytorch.org/get-started/locally/#start-locally.
ΠΠ»Ρ python 3 Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:Β
pip3 install torch==1.3.1+cpu torchvision==0.4.2+cpu -fΒ https://download.pytorch.org/whl/torch_stable.html
ΠΡΠΏΠΎΠ»Π½ΡΡΡ Π΅Ρ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·ΡΠΌΡΠΌ ΠΎΡΡΡΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ.
Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠ°ΠΏΠΊΡ wheels3:
mkdir wheels3
Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°ΠΉΠ»Β requirements.txt:
touchΒ requirements.txt Π ΡΠ°ΠΉΠ» requirements.txt Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ (Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ): torch==1.3.1+cpu torchvision==0.4.2+cpu
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip3 install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html --user pip3 wheel -w wheels3/ -r requirements.txt --pre -f https://download.pytorch.org/whl/torch_stable.html
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ wheels3, ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΡ Π½Π° Π½ΠΎΡΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Ρ Ρ ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π² ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π² ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠ°:
/home/{username}/python-script-service
Π Π²Π½ΡΡΡΠΈ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ°ΠΏΠΊΠ°:
/mnt/volume
ΠΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ° Ρ ΠΎΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΉΠ»Β start-script.sh (Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°).
pip3 install --no-index -f /mnt/volume/wheels3/ -r /mnt/volume/requirements.txt
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ pytorch.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π², Π·Π°ΠΏΡΡΡΠΈΠ² Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ:
import torch result = torch.cuda.is_available()