рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реАрдкреАрдереЙрди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.7.x рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг 2.7.3 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдереЗ)ред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдкрд╛рдпрдерди рдореЗрдВ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдпрд╣ рдЙрдирдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рдкреИрдХреЗрдЬ, рдореЙрдбреНрдпреВрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╛рдо рд╣реИрдВред рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдмрдореЛрдбреНрдпреВрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ, рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдЖрдкрдХреЛ рдЙрди рдкреИрдХреЗрдЬреЛрдВ, рдореЙрдбреНрдпреВрд▓реЛрдВ рдФрд░ рдирд╛рдореЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд╛рдо рдЖрдпрд╛рдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рджреЛ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдкреИрдХреЗрдЬ, рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдирд╛рдо
- рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрде рдПрдХ рдкреВрд░реНрдг рдкрде рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрде рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрджрд▓рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рджреЗрдЦреЗрдВ www.python.org/dev/ рдкреЗрдкреНрд╕ / рдкреЗрдк -0328 )
рдЖрдпрд╛рдд abcd рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд╕реНрдкрд╖реНрдЯрддрд╛рдПрдБ рдЗрди рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИрдВ:
- рдЖрдпрд╛рдд рдкреИрдХреЗрдЬ abcd, рдпрд╛ рдореЙрдбреНрдпреВрд▓ abcd рдЖрдпрд╛рдд рдХрд░реЗрдВ
- CURRENT рдкреИрдХреЗрдЬ рд╕реЗ рдкреИрдХреЗрдЬ / рдореЙрдбреНрдпреВрд▓ abcd рдЖрдпрд╛рдд рдХрд░реЗрдВ (рдЬрд┐рд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ abcd рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рд╕реЗ), рдпрд╛ sys.path рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЬ рд╕реЗред
рдЕрд╕реНрдкрд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг:
- abcd import defg рд╕реЗ: (abg package рд╕реЗ defg рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдпрд╛ abcd рдкреИрдХреЗрдЬ рд╕реЗ defg рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдпрд╛ abcd рдкреИрдХреЗрдЬ рд╕реЗ defg рдирд╛рдо рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдпрд╛ abcd рдореЙрдбреНрдпреВрд▓ рд╕реЗ defg рдирд╛рдо рдЖрдпрд╛рдд рдХрд░реЗрдВ) X (рдЙрд╕реА рдкреИрдХреЗрдЬ рд╕реЗ, рдпрд╛ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЬ рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ) sys.path)
- рдЖрдпрд╛рдд abcd.defg: (рдПрдмрд╕реАрдбреА рдкреИрдХреЗрдЬ рд╕реЗ рдбреАрдИрдПрдл рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдПрдмреАрдбреА рдкреИрдХреЗрдЬ рд╕реЗ рдбреАрдПрдлрдЬреА рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВ) рдПрдХреНрд╕ (рдЙрд╕реА рдкреИрдХреЗрдЬ рд╕реЗ, рдпрд╛ sys.path рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЬ рд╕реЗ)
рдЗрди рдШреЛрд╖рдгрд╛рддреНрдордХ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд╛рдпрдерди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдпрд╛рдд abcd рдХреЗ рд▓рд┐рдП рдирд╛рдо рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП abcd рдирд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рд╣реИ:
рд╕рдВрдЦреНрдпрд╛ | рд╣рдо рдХреНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ | рд╣рдо рдХрд╣рд╛рдБ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ * | рдЯрд┐рдкреНрдкрдгреА |
---|
1 | abcd рдкреИрдХреЗрдЬ | рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рдореЗрдВ (рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдЖрдпрд╛рдд abcd рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИ) | рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╣реА рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ ** |
2 | abcd рдореЙрдбреНрдпреВрд▓ | рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рдореЗрдВ (рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдЖрдпрд╛рдд abcd рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИ) | рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╣реА рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ ** |
3 | abcd рдореЙрдбреНрдпреВрд▓ | рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЙрдбреНрдпреВрд▓ рдореЗрдВ | рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ *** |
4 | abcd рдкреИрдХреЗрдЬ | рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ sys.path рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ | рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд╕рдВрджрд░реНрдн **** рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ |
5 | abcd рдореЙрдбреНрдпреВрд▓ | рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ sys.path рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ | рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд╕рдВрджрд░реНрдн **** рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ |
рдЙрдкрд░реЛрдХреНрдд рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓ рдЦреЛрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЧреЗ рдХреА рдЦреЛрдЬ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
* рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдореЙрдбреНрдпреВрд▓ рдкрд░ рдПрдХ рдкреИрдХреЗрдЬ рдХреА рдЦреЛрдЬ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
** рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ __package__ рдЪрд░ рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд┐рдВрдХ:
docs.python.org/2/tutorial/modules.html#intra-package-references"рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрджрд░реНрдн рдЗрддрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ рдХрд┐ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдкрд╣рд▓реЗ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬ рдкрде рдореЗрдВ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпреБрдХреНрдд рдкреИрдХреЗрдЬ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред"
(!!!) рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (http://docs.python.org/2/tutorial/modules.html#the-module-search-path) рдореЗрдВ рдЕрдиреНрдпрддреНрд░ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЧрд▓рдд рд╣реИ (рджреЗрдЦреЗрдВ
Bugs.python.org/issue16891 )ред
(!!!) рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЦреЛрдЬ рдЪрд░рдг рддрднреА рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдЖрдпрд╛рдд рдПрдмреАрд╕реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреИрдХреЗрдЬ рд╕реЗ рд╣реА рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА рдЖрдпрд╛рдд <рдкреИрдХреЗрдЬ рдирд╛рдо> <рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред >)ред рдкреИрдХреЗрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдХрджрдо рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ
www.python.org/dev/peps/pep-0302/#id23 :
тАЬрдЗрдВрдкреЛрд░реНрдЯреЗрдб.c рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд __import__ рдлрдВрдХреНрд╢рди (PyImport_ImportModuleEx () рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдлрд┐рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬ рд╣реИ рдпрд╛ рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдмрдореЙрдбреНрдпреВрд▓ред рдпрджрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (a) рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдмрдореЙрдбреНрдпреВрд▓ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдкреИрдХреЗрдЬ (рд╕рдмрдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреИрдХреЗрдЬ) рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ "рд╕реНрдкреИрдо" рдирд╛рдордХ рдПрдХ рдкреИрдХреЗрдЬ "рдЖрдпрд╛рдд рдЕрдВрдбреЗ" рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ "рд╕реНрдкреИрдо.рдЧреЙрдЧреНрд╕" рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╡рд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдпрд╛рдд рдПрдХ рдкреВрд░реНрдг рдЖрдпрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ: рдпрд╣ "рдЕрдВрдбреЗ" рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ред
***
docs.python.org/2/tutorial/modules.html#the-module-search-path"рдЬрдм рд╕реНрдкреИрдо рдирд╛рдордХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдкрд╣рд▓реЗ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред"
****
docs.python.org/2/tutorial/modules.html#the-module-search-path"рдпрджрд┐ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЪрд░ sys.path рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реНрдкреИрдорд╣реЛрдо рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред"
рдЖрдпрд╛рдд abcd.defg рдХреЗ рд▓рд┐рдП рдирд╛рдо рд▓реБрдХрдЕрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкреИрдХреЗрдЬ рдпрд╛ рдореЙрдбреНрдпреВрд▓ abcd рдЖрдпрд╛рдд abcd рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЦреЛрдЬ рд╕рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреИрдХреЗрдЬ рдпрд╛ рдбрд┐рдл рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдореНрди рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╕рдВрдЦреНрдпрд╛ | рд╣рдо рдХреНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ | рд╣рдо рдХрд╣рд╛рдБ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ * | рдЯрд┐рдкреНрдкрдгреА |
---|
1 | рдбреАрдлрд╝рдЧ рдкреИрдХреЗрдЬ | abcd рдкреИрдХреЗрдЬ рдореЗрдВ | рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд▓рд┐рдВрдХ ** рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ |
2 | рдбреАрдПрдлрдЬреА рдореЙрдбреНрдпреВрд▓ | abcd рдкреИрдХреЗрдЬ рдореЗрдВ | рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд▓рд┐рдВрдХ ** рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ |
* рдЕрдЧрд░, abcd рдЦреЛрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдмрд╛рдж рд╡рд╛рд▓рд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрди рдЧрдпрд╛, рддреЛ рдЖрдпрд╛рдд рдПрдХ рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛: рдХреЛрдИ рднреА рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕реЗ рдбреАрдПрдлрдЬреА рддреНрд░реБрдЯрд┐ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
docs.python.org/2/reference/simple_stmts.html#import : "рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред"
**
www.python.org/dev/peps/pep-0302/#id23тАЬрддрдВрддреНрд░ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ, рдПрдХ рдмрд┐рдВрджреАрджрд╛рд░ рдирд╛рдо рдЖрдпрд╛рдд рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред "рдЗрдореНрдкреЛрд░реНрдЯ рд╕реНрдкреИрдо.рд╣реИрдо" рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ "рдЗрдореНрдкреЛрд░реНрдЯ рд╕реНрдкреИрдо" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рд╡рд╣ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рддреЛ "рд╣реИрдо" рдХреЛ "рд╕реНрдкреИрдо" рдХреЗ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "
Abcd.defg рдЖрдпрд╛рдд ghi рд╕реЗ рдирд╛рдо рд▓реБрдХрдЕрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкреИрдХреЗрдЬ рдпрд╛ рдореЙрдбреНрдпреВрд▓ abcd.defg рдЖрдпрд╛рдд abcd.defg рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╕рдВрдЦреНрдпрд╛ | рд╣рдо рдХреНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ | рд╣рдо рдХрд╣рд╛рдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ |
---|
1 | рдШреА рдирд╛рдо | рдПрдХ рдкреИрдХреЗрдЬ рдпрд╛ рдбрд┐рдлреЗрдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ |
2 | ghi рдкреИрдХреЗрдЬ | рдбреАрдВрдЧ рдкреИрдХреЗрдЬ рдореЗрдВ |
3 | рдШреА рдореЙрдбреНрдпреВрд▓ | рдбреАрдВрдЧ рдкреИрдХреЗрдЬ рдореЗрдВ |
рдирд╛рдо рдУрд╡рд░рд▓реИрдк
рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕реБрд╕рдВрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдЖрддрд╛ рд╣реИред рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ: рдПрдмрд╕реАрдбреА рдирд╛рдо рдХрд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдФрд░ рдПрдмрд╕реАрдбреА рдирд╛рдо рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдбреАрдлрд╝рдЧ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдПрдмреАрдбреАрдХреЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдПрдмреАрдбреАрдХреЗ рдкреИрдХреЗрдЬ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдПрдмрд╕реАрдбреА рдореЙрдбреНрдпреВрд▓ рдЙрд╕реА рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЖрдпрд╛рдд abcd.defg рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдпрд╛рдд рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдкрд╣рд▓реЗ abcd рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕рдореЗрдВ рдбреАрдлрд╝рдЧ рдореЙрдбреНрдпреВрд▓ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрд╕рдВрднрд╡ рд╣реИред
рдЖрдпрд╛рдд рдХрдерди рдХреЗ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ abcd рдХреЗрд╡рд▓ рдПрдХ рдкреИрдХреЗрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рднреА рддрддреНрд╡ рдХреЗрд╡рд▓ рд╕рдВрдХреБрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ abcd рдХреЛ рдХреЗрд╡рд▓ рд╕рдВрдХреБрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдмреНрд╕рдХреЙрд░реНрдб рдкреИрдХреЗрдЬ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдореЗрдВ рдбреАрдПрдлрдЬреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╛рдпрдерди рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Bugs.python.org/issue16891#msg179353 рджреЗрдЦреЗрдВред
рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд╛рдпрдерди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреА рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛рдПрдВ рдЦрдбрд╝реА рд╣реЛ рдЧрдИ рд╣реИрдВ :
overoverflow.com/questions/14183541/why-python-finds-module-instead-of-package-if-they-have-the-same-name рдФрд░
bugs.python.org/issue16891 , рд╕рд╛рде рд╣реА рд╕рд╛рде рд▓рд┐рдЦрд┐рддред рдпрд╣ рд▓реЗрдЦред
рдРрд╕реЗ рдирд╛рдо рдЯрдХрд░рд╛рд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рд╣реИрдВ:
- рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рди рдЦрд╛рдП, рдЕрд░реНрдерд╛рдд рдорд┐рд▓рд╛рди рдирд╛рдореЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ
- рдХрднреА-рдХрднреА рдпрд╣ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреВрд░реНрдг рдкрдереЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ __future__ рдЖрдпрд╛рдд рдирд┐рд░рдкреЗрдХреНрд╖_ рдЖрдпрд╛рдд рдХрдерди (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ sys.path рдХреЛ рдмрджрд▓рдХрд░ рд╕рдВрдХреБрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдмрдврд╝рд╛рддрд╛ рд╣реИ)
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ: рд╕реНрд░реЛрдд рдХреЛрдб
рдЗрд╕ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
bitbucket.org/dmugtasimov/python_import ред