<p>рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ - рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдФрд░ рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдЯрдХрд░рд╛рд╡</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдорд╛рд░реНрдЪ 2011  ┬╖  41рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pip

рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдПрдХ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХрд┐рд╕реА рднреА рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ pip install , pip install -e , python setup.py install , рдФрд░ python setup.py develop :

https://github.com/jonparrott/namespace-pkg-tests/blob/master/table.md

tl; dr: рдЖрдк pip install -e рдФрд░ python setup.py develop рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣рд░ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ pip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рд╕рднреА 41 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ :(

рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ: http://public.hg.stephane-klein.info/hgwebdir.cgi/test_pip_namespace_bug_3/

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗрдЯрдкреВрд▓реЛрдВ рдореЗрдВ рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: __init__.py рд╡рд┐рдзрд┐ (рдЬреЛ рдХрд┐ рдордиреБрд╖реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ), рдФрд░ ...-nspkg.pth рдлрд╝рд╛рдЗрд▓ рд╡рд┐рдзрд┐, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ --single-version-externally-managed (рдЬреЛ рдкрд╛рдЗрдк рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИрдВред

IRC рдкрд░ mitsuhiko рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ (рдЖрдВрд╢рд┐рдХ) рд╕рдорд╛рдзрд╛рди рд▓рдЧрддрд╛ рд╣реИ "рдкрд┐рдк рдЗрдВрд╕реНрдЯреЙрд▓-рдИ" рдорд╛рдирдХ рд╕реЗрдЯрдкреВрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝реЗрдВ ... рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╕рд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП nspkg.pth рдлрд╝рд╛рдЗрд▓ред ред (рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ sitedir рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рдЕрдВрдбреЗ-рд▓рд┐рдВрдХ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдФрд░ init рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡рд┐рдХрд╕рд┐рдд-рд╕реНрдерд╛рдкрд┐рдд рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ init .py рд╣реЛрдЧрд╛)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╛рдЗрдк рдХрдо рд╕реЗ рдХрдо рдЦреБрдж рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдЧрд╛ (рдкрд╛рдЗрдк-рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкрд╛рдЗрдк-рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдерд╛рдкрд┐рдд рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ)ред рдкрд┐рдк-рдЗрдВрд╕реНрдЯрд╛рд▓реНрдб рдФрд░ рд╕реЗрдЯрдкреНрдЯреВрд▓ / рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯреЗрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкрд░ рднреА рдХрд╛рдЯ рдорд┐рд▓рд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдирд╛рдо рд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП __init__.py рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдиреЗ рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд╕рд┐рдВрдЧрд▓реНрд╕-рд╕рдВрд╕реНрдХрд░рдг-рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд) рдирд╛рдХ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд╛рдХ рдХреА рдЧрд▓рддреА рд╣реЛ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ __init__.py рди рд╣реЛ рддреЛ рд╡рд╣ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдк рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдмрд╕ nspkg.pth рдЪреАрдЬ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ __init__.py рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рддрдХ рдкреИрдХреЗрдЬ рдЕрдкрдиреЗ рдЖрдк рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛рдиреА __init__.py рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд╛_рдкрде / рдШреЛрд╖рдгрд╛рдкрддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЦрд╛рд▓реА рд╣реИ) рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред -рд╕рд┐рдВрдЧрд▓-рд╡рд░реНрдЬрди-рдПрдХреНрд╕рдЯрд░реНрдирд▓реА-рдореИрдиреЗрдЬ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдкреИрдХрд░реНрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдкрд╛рдЗрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдШреБрд╕рдкреИрда рдХреЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИред

+1 '-рд╕рд┐рдВрдЧрд▓-рд╡рд░реНрдЬрди-рдмрд╛рд╣рд░реА-рдкреНрд░рдмрдВрдзрд┐рдд' рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкрд╛рдЗрдк рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкрд╛рдЗрдк рдХрдо рд╕реЗ рдХрдо рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ easy_install рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдорд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ?

--single-version-externally-managed рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ; рдлреНрд▓реИрдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рд╕реЗ рджреВрд░ рд╣рдЯрдирд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрди рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрдЯрдкреВрд▓ / рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░реНрд╕ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рд╕рдкреЛрд░реНрдЯ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрд╕рдВрдЧрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреЛрдИ рднреА рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ --single-version-externally-managed "рдкрд╛рдЗрдк рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИ" рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЧрд▓рдд рдФрд░ рдПрдХ рд▓рд╛рд▓ рд╣реЗрд░рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рд╣реИред рдЗрд╕ рдлреНрд▓реИрдЧ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдлреНрд▓реИрдЯ рд╕рд┐рдВрдЧрд▓-рд╡рд░реНрдЬрди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ, рдЬреЛ рдХрд┐ easy_install рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдкрд╛рдЗрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ (рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ) рд╕реЗрдЯрдкреНрдЯреЛрд▓реНрд╕ рд▓реЗрдЦрдХ рдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдкреИрдХрд░реНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдпрд╣рд╛рдБ рдЯреВрдЯрдирд╛ рдЙрд╕ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрдХрдиреАрдХ рд╕реЗрдЯрдкреВрд▓реЛрдВ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрдЧ рд╣реИ, рдФрд░ рдмрдЧ рддрдм рдореМрдЬреВрдж рд╣реИ рдЬрдм рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдкреИрдХрд░реНрд╕ (рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдмрдЧ рдХреЛ рдПрдХ "рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдореЗрдВ рджреЗрдЦрд╛ рдерд╛" setup.py рд╡рд┐рдХрд╕рд┐рдд "рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдФрд░ рд╕рд┐рд╕реНрдЯрдо-рдкреИрдХреЗрдЬ-рд╕реНрдерд╛рдкрд┐рдд рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ)ред

рдореИрдВ рдЗрд╕ рдмрдЧ рдХреЛ рднреА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рдЕрдирдореЛрд▓ рдмрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдУрд╣ рдЕрдЪреНрдЫрд╛ред

рдЬрдм рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ --single-version-externally-managed рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рдкреИрдЪ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпреЛрдВ рдирд╣реАрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдХрд┐ рд╣рдо pip install --single-version-externally-managed рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ ./pip/req.py:568 рдФрд░ рд╕рднреА рдкреИрдХреЗрдЬ рдЕрдм рдЕрдВрдбреЗ рдХреЗ рдбрд╛рдпрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдП, рдЬреИрд╕реЗ рдХрд┐ easy_install рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рд╣реА рдХрднреА рдореИрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореИрдВрдиреЗ рдкрд╛рдЗрдк рдФрд░ easy_install рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореЗрд░рд╛ site-packages рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рдг рди рд╣реЛ рдФрд░ рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рди рд╣реЛрдВред

рдореИрдВ рдПрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ --egg рд╡рд┐рдХрд▓реНрдк рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --single-version-externally-managed ред

https://github.com/k4ml/pip/commit/93cd6b16207d2eba201a7fc3126624b616f5e6f9

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рдкрд╛рдЗрдк рдХреЛрдб рдкрд░ рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдореМрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреА рдЭрд▓рдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдмрд╕ pip install --egg somepackages рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓ рдПрдЧ рдбреАрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдмрд╕ рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЯреЗрд╕реНрдЯ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╣реЛрддреЗ рд╣реИрдВ
ScriptTest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг, рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдореМрдЬреВрджрд╛ рдЙрджрд╛рд╣рд░рдгред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдмрд╕ рдЙрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдПрдХ рдирдореВрдирд╛ рдкреИрдХреЗрдЬ рдПрдХ .egg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рдлреНрд▓реИрдЯ рд╕реНрдерд╛рдкрдирд╛, рдореЗрдВ
рд╕рд╛рдЗрдЯ-рд╕рдВрдХреБрд▓ред рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП,
рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ: tests/packages/FSPkg рд╢рд╛рдпрдж рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
tests/test_basic.py рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

рдкреБрд▓ рдЕрдиреБрд░реЛрдз - https://github.com/pypa/pip/pull/541

рдореИрдВ рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ pip.conf рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рддреБрдо рдЙрд╕ рдмрд╛рд░реЗ рдореЗ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ ?

рдореИрдВ рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ pip.conf рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рддреБрдо рдЙрд╕ рдмрд╛рд░реЗ рдореЗ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ ?

рдЪрд▓реЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз # 541, рдЬреЛ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж @ k4ml!

рд╕реВрдЪрдирд╛: --egg рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рд╕рдВрднрд╡рддрдГ рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред # 1749 рдореЗрдВ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ

рдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ

https://gist.github.com/Ivoz/d9bff05069e0ec53e6ea

рдореИрдВ - thegg рд╕рдорд╛рдзрд╛рди рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдо рдмреЛрдЭрд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдмрд┐рдирд╛, рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ - рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдирд╛ рдХреЛрдб рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ pip install -I --no-deps . рдЪрд▓рд╛рдиреЗ

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕ рдкреВрд░реЗ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЪреБрдк рд╣реИред рдЖрдк рдмрд╕ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рднрд▓реЗ рд╣реА рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдФрд░ рдкрд╛рдЗрдк рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рд╣реИред

рдпрд╣ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХрджрдо рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЧреИрд░-рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░, рдкрд╛рдЗрдк рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рдПрдХ рдЧреИрд░ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдЬреЛ рдПрдХ рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк, рдпрджрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╛рдо рд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдЕрдзрд┐рд╖реНрдард╛рдкрди рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдирд╛рдо рд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкрд╛рдЗрдк рдЙрд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ setuptools https://bitbucket.org/pypa/setuptools/issue/250/develop-and-install-single-version рдореЗрдВ 2 рдкреНрд░рд╕реНрддрд╛рд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП

рдбрд╛рд▓

рдЖрдпрд╛рдд pkg_resource; pkg_resources.fixup_namespace_packages ( '')

рд╕рд╛рдЗрдЯ-рд╕рдВрдХреБрд▓ рдореЗрдВ рдПрдХ .pth рдлрд╝рд╛рдЗрд▓, рдкрд┐рдк рд╕реНрдерд╛рдкрд┐рдд -рдИ рд╕реНрдерд╛рдкрд┐рдд рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЧрддреА рд╣реИред

рдпрд╣ рджреЛ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕рдорд╛рди рд╢реАрд░реНрд╖ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ рдореБрджреНрджрд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (+ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рд╕реЗрдЯрдЯреЙрдкреНрд╕ рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рддреИрдирд╛рддреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрдерди 3.4 рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП pip install -e setup.py develop рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореИрдВрдиреЗ рд╕реЗрдЯрдкреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реБрдХ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ * .pth рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреА, рдЬреЛ рдХрд┐ рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдо рд╕реЗ "рдкрд░рд┐рдЪрдп" рдХрд░рддреА рд╣реИред рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реЗрдЯрдЯреЙрдк 18 рдФрд░ рдкрд╛рдЗрдк 7.1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг setup.py рдлрд╝рд╛рдЗрд▓, рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://gist.github.com/cbrand/a1624ac3e9c81ce45fcb

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореИрдВ рдЖрдЬ рднреА рдЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдФрд░ рдпрд╣ рдореБрдЭреЗ buildout рд╕реЗ virtualenv + pip рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдореЛ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ .tar.gz рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ {{run-me}} рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБред рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рдЙрдард╛ рд░рд╣рд╛ рд╣реВрдВред

рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ https://github.com/pypa/pip/issues/3#issuecomment -1659959 рдореЗрдВ @carljm рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдкрд╛рд░ рдЖрдпрд╛, рдЕрд░реНрдерд╛рдд "рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓-рдИ" рдорд╛рдирдХ рдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝реЗрдВ setuptools ... рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╕рд┐рдд-рд╕реНрдерд╛рдкрд┐рдд package_ рдХреЗ рд▓рд┐рдП nspkg.pth рдлрд╝рд╛рдЗрд▓ред

рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдерд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд╛рдкрддрд╛ рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдХреЗ рдкреНрд░рд╢реНрди рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ # 3160 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

рддреЛ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЕрднреА рднреА рд╡реИрдз рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрджрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдЗрд╕рд▓рд┐рдП ... рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ?

pkg_resources.get_distribution() рдХрд╛ рдХреБрдЫ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдЖрдпрд╛рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрдм рдХреЛрдб рдЬреЛ рдХрд┐ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдмрдХрд┐ рдЕрдЬрдЧрд░ рдЦреЛрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред

рдпрд╣ рднреА рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдПрдХ ipython рдЦреЛрд▓ рдХреЛ рд╕рдВрдХреБрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рдЕрднреА рднреА 5 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХрд╛ рдХрд╛рдо рдПрдХ рдПрдХреАрдХреГрдд рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЪреМрдЦрдЯреЗ рдХреЛ рдЧреЛрдВрдж рдХрд░рдирд╛ рд╣реИ, рддреЛ рдкрд╛рдЗрдк рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдмреЗрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрд╡рдпрдВрд╕реЗрд╡реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рд╣реИ,
рд╕реЗрдЯрдкреВрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдорд░реНрдерди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкрд╛рдЗрдк рдЗрд╕реЗ рд╕рд╣реА рдХрд░ рд╕рдХреЗ

рдмреНрд░реИрдВрдбрди Github рд╕реВрдЪрдирд╛рдПрдВ @github.com рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рдЕрднреА рднреА 5 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХрд╛ рдХрд╛рдо рдПрдХ рдПрдХреАрдХреГрдд рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЪреМрдЦрдЯреЗ рдХреЛ рдЧреЛрдВрдж рдХрд░рдирд╛ рд╣реИ,
рдкрд╛рдЗрдк рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдмреЗрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╣реИ
рдЗрд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдореЗрд░рд╛ рдХрд╛рдоред

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦрд┐рдд fixup_namespace_packages ('') рд╣реИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░
рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ: рдореИрдВрдиреЗ vev рдХреЗ рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ z.pth рдмрдирд╛рдпрд╛
рдЬрд┐рд╕рдореЗрдВ import pkg_resources; pkg_resources.fixup_namespace_packages('')

рдПрдХ рдХреЛрд╢рд┐рд╢ рдХреЗ рд▓рд╛рдпрдХ, IMHOред

рдЕрднреА рддрдХ рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЯрдХреНрдХрд░!

рдореИрдВ рдмрд╕ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рд░ рдПрдХ рдордЬреНрдЬрд╛ рдкреИрдХреЗрдЬ рдиреЗрдорд╕реНрдкреЗрд╕ (рдХреБрдЫ рдкреИрдХреЗрдЬ рдЪрд╛рд░ рдпрд╛ рдкрд╛рдВрдЪ рддрдХ рдХреА рдЖрдмрд╛рджреА рд╡рд╛рд▓реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджрд╛ рдореЗрд░реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЬрдм рдпрд╣ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ ред рдореБрдЭреЗ рдЗрд╕рдХреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕реЗ рд╕рд┐рд░реНрдл 60 рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╢рд░реНрдо рдЖ рд░рд╣реА рд╣реИред entry_points рдиреЛрдЯ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╕реНрддреБрддрдГ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдпреЛрдЧрджрд╛рди entry_points рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред

pip рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ _every_ рдкреИрдХреЗрдЬ рдбрд┐рд╕реНрдХ рд╕реЗ, рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИ, рдЬреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреИрд░-рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рд░реНрди рдХреА рдкреВрд░реА рдЧреЗрдВрдж рдХреБрдЫ рдмрд╣реБрдд, рдмрд╣реБрдд рд╣реА рдЕрдкреНрд░рд┐рдп рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред (рдЬреИрд╕реЗ рдХрд┐ рдЖрдВрддрд░рд╛рдпрд┐рдХ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓; рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдФрд░ namespace.__path___ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреЗ рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╡рд┐рддреНрд░рддрд╛ рдЬрд╛рдВрдЪ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрдкрд░рд╛рдзреА рдмреЛрд░реНрдХрдб рдкреИрдХреЗрдЬ рдХреА рддреЗрдЬреА рд╕реЗ рдкрд╣рдЪрд╛рди рдХреА рд╣реИред) рдареАрдХ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдФрд░ рд╢реБрджреНрдз setup.py develop 'd рдорд┐рд▓рд╛рдХрд░ред рд╕реНрд░реЛрдд рд╡рд╛рд▓реЗ (рдкрд╛рдЗрдк рд╕реЗ рдмрдЪрдирд╛) рдкреНрд░рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдо рдпрд╣ рднреА рдЕрдЬреАрдм рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╣реА рдирд╛рдорд╕реНрдерд╛рди-рдпреЛрдЧрджрд╛рди рдкреИрдХреЗрдЬ рдХреЛ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рд╕рднреА рдПрдХ рд╕рд╛рдеред (рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ pip uninstall , рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдзрд┐рдХ рдлрд╛рдЗрд▓реНрд╕ рдорд┐рд▓рдирд╛ рдЙрддрдирд╛ рд╣реА рдкреНрд░рдлреБрд▓реНрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред) pip install -e рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдЕрд╕рдВрдЧрдд рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдо рдареАрдХ рд╕реЗ рдЕрдирдкреИрдХреНрдб рдирд╛рдорд╕реНрдерд╛рди (рд╕реНрдерд╛рдкрд┐рдд), pth-link files (рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ zip_safe рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж .egg рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред zip_safe рдЬрд╛ рд░рд╣рд╛ рд╣реИ False рдХрд┐ рдирд┐рд░реНрднрд░ рдкреИрдХреЗрдЬ рдкрд░ рдФрд░ рдХреЛрдИ .egg рд╡рд┐рддрд░рдг Pypi рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ред

рдиреЗрдорд╕реНрдкреЗрд╕ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░рд╛рд╢рд╛ рдЪреМрдереА рдмрд╛рд░ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП nuked рд╣реИ рдХреЗ рдмрд╛рдж рдПрдХ рдЪрд░рдо рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддрд╛ рд╣реИред ;)

рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рдиреЛрдЯ рд░рдЦреЗ рд╣реИрдВред 'рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп' рдкреИрдХреЗрдЬ, рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдХреЗрдЬ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рдмреАрдЪ рдорд┐рд╢реНрд░рдг рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдмрд┐рд▓реНрдбрдЖрдЙрдЯ + mr.developer рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рднрд╛рдЧреНрдп рдорд┐рд▓рддрд╛ рд╣реИред

рдЬрдмрдХрд┐ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдХ @lelit рдХреБрдЫ рд╕рдВрдХреБрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рд╕рдВрдХреБрд▓ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ / рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрдирд╛рддрд╛ рд╣реИред

рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ @carljm (рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ -nspkg.pth рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП) рдХреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА рдпрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд▓рдЧрддрд╛ рд╣реИ (рдпрд╛ рдпрд╣ рдЕрдм рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдерд╛ - -Egg рд╡рд┐рдХрд▓реНрдк?)ред

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА PEP420 рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ? (рдкрдврд╝реЗрдВ: рдХреНрдпрд╛ рдпрд╣ рдЕрдЬрдЧрд░ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛?)

PEP420 рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдХрдИ рдмрд╛рд░ рд╕рдВрдкрд╛рджрди рдореЛрдб рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреНрд▓рд┐рдЪ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдкреВрд▓рдЯ ' find_packages рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдирдП рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

-    packages=find_packages('src'),
+    packages=['toplevel.child.' + package
+              for package in find_packages('src/toplevel/child/')],

рдХрд┐рд╕реА рдХреЛ рднреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ -nspkg.pth рдЬреЛрдбрд╝рдХрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред

рд╕реЗрдкреНрдЯреБрдкреВрд▓рд╕ 31 рджреЗрдЦреЗрдВ рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдкрд╛рдпрдерди 3.5+ рдкрд░ PEP-420 рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╕рд╣-рдореМрдЬреВрдж рд╣реИред

рдХрд┐рд╕реА рднреА рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ pip install , pip install -e , python setup.py install , рдФрд░ python setup.py develop :

https://github.com/jonparrott/namespace-pkg-tests/blob/master/table.md

tl; dr: рдЖрдк pip install -e рдФрд░ python setup.py develop рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣рд░ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ pip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрдкреНрдЯреЛрд▓реНрд╕ 31 рдиреЗ рд╣рдорд╛рд░реА рдкреНрд░рдЬрдирди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдкрд╛рдЗрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@jonparrott
Https://github.com/jonparrott/namespace-pkg-tests/blob/master/table.md рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдФрд░ рд╕реЗрдЯрдкреВрд▓ рдХреЗ рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

@dstufft рдЬрдмрдХрд┐ рдореИрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддрдп рд╣реИ, рдореИрдВ @jonparrott рдХреА рд╕рдВрдЧрддрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдмреВрдд рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдирд╛

@Jonparrott рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ " python setup.py install рд╕реАрдзреЗ (Python 2 рдкрд░ PEP 420 рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ" " рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд╛рдЗрдк рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдмрд┐рд▓реНрдХреБрд▓ рднреА (рдЬреИрд╕реЗ python setup.py install + python setup.py develop )ред

рдпрд╣ рдЯрд┐рдХрдЯ pip install . рдФрд░ pip install -e рдпрд╛ python setup.py develop рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдерд╛ред

@Jonparrott рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдХреЛрдИ рднреА рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ python setup.py install рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рди рдХрд┐ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рдеред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдерд╛ред рдореИрдВ @dstufft рдХреЗ рдЖрдХрд▓рди рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ - рдкрд╛рдЗрдк рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИред

@ piotr-dobrogost рдкрд░реАрдХреНрд╖рдг рджреЛрдиреЛрдВ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд╛рдЗрдк 9.0.1 рдФрд░ рд╕реЗрдЯрдкреНрдЯреВрд▓ 34.3.2ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

reynoldsnlp picture reynoldsnlp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cjolowicz picture cjolowicz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cjerdonek picture cjerdonek  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JordanReiter picture JordanReiter  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jiapei100 picture jiapei100  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ