π ΠΠ°ΠΊ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ python: ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ π
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ PYTHONPATH ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ sys.path.append(). ΠΠΎΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°:
# ΠΠ°ΡΠΈΠ°Π½Ρ 1: ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Ρ PYTHONPATH
import sys
sys.path.append('/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ')
# ΠΠ°ΡΠΈΠ°Π½Ρ 2: Π€ΡΠ½ΠΊΡΠΈΡ sys.path.append()
import sys
sys.path.append('/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ')
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ python:
ΠΡΠΎΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΈ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ python ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ python.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ sys.path
ΠΠΎΠ΄ΡΠ»Ρ sys Π² python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ path, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ, Π³Π΄Π΅ python ΠΈΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
import sys
sys.path.append("/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ")
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ append ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ sys, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡ "/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ" Π² ΡΠΏΠΈΡΠΎΠΊ sys.path. Π’Π΅ΠΏΠ΅ΡΡ python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΡΠΈ ΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ python. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ (:), Π³Π΄Π΅ python ΠΈΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
export PYTHONPATH="/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ"
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH ΡΠ°Π²Π½ΡΠΌ "/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ". Π’Π΅ΠΏΠ΅ΡΡ python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΠΈ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
import sys
sys.path.insert(0, "/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ")
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ insert ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ sys, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΡΡ "/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ" Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ° sys.path. Π’Π΅ΠΏΠ΅ΡΡ python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ virtualenv
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ virtualenv, ΡΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ΅Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°.
source venv/bin/activate
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ source venv/bin/activate. Π’Π΅ΠΏΠ΅ΡΡ python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉ ΡΡΠ΅Π΄Ρ.
5. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ site
ΠΠΎΠ΄ΡΠ»Ρ site Π² python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
import site
site.addsitedir("/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ")
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ addsitedir ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ site, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡ "/ΠΏΡΡΡ/ΠΊ/ΠΌΠΎΠ΄ΡΠ»Ρ" Π² ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ python!