π ΠΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² python 3 ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ?
Π§ΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python 3 ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡ ΠΊ ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ sys.path. ΠΠ°Π»Π΅Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ import Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ.
import sys
sys.path.append('ΠΏΡΡΡ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅')
import ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ΄Π΅ΡΡ 'ΠΏΡΡΡ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅' - ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈ 'ΠΌΠΎΠ΄ΡΠ»Ρ' - ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python 3 ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ
Π Python 3 Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Ρ Π²Π°Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ from Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ import.
from ..folder.module import function
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ function ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ module, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ folder, Π½Π° ΠΎΠ΄Π½Ρ ΠΏΠ°ΠΏΠΊΡ Π²ΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ sys.path.append()
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ sys.path.append(), ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import.
import sys
sys.path.append('/ΠΏΡΡΡ/ΠΊ/ΠΏΠ°ΠΏΠΊΠ΅')
import module
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΡΡΡ /ΠΏΡΡΡ/ΠΊ/ΠΏΠ°ΠΏΠΊΠ΅ ΠΊ ΡΠΏΠΈΡΠΊΡ ΠΏΠΎΠΈΡΠΊΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ module ΠΈΠ· ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
ΠΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ __init__.py Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π½Π° ΠΏΡΡΠΈ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
mypackage/
__init__.py
module.py
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import, ΡΠΊΠ°Π·Π°Π² ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°.
import mypackage.module
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ - ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΉ ΠΊ ΠΏΠ°ΠΏΠΊΠ°ΠΌ, Π³Π΄Π΅ Python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
export PYTHONPATH=/ΠΏΡΡΡ/ΠΊ/ΠΏΠ°ΠΏΠΊΠ΅
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import.
import module
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python 3 ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²Π°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ.