ΠΡΡΠ°ΡΡΡ Π½Π°ΠΉΡΠΈ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Python Π²Π½ΡΡΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ pip, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΎΠ± ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ΄Π½ΠΎΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ_ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ git (ΡΡΠΎ Π΅ΡΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ) ... Π½ΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΡΠ»ΠΈ pip ΡΠ΄Π°Π»ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ dependency_links, ΡΠΎΠ³Π΄Π° ΡΡΠΎΡ ΡΡΠΈΠ»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ - ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ΅Π·ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠΈΡΡΠ΅Ρ Ρ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ npm
ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π΄ΠΎ Π°Π±ΡΡΡΠ΄Π° ΠΏΡΠΎΡΡΡΠΌ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ Π½Π΅ΡΠ²Π½ΡΠΌ, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅Π³Ρ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ git.
ΠΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ» Π±Ρ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΡΠ°Π²ΠΈΡΡ pip ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ» requirements.txt
ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΌΠΎΠ³ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git).
ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
pip install --follow-requirements git+http://my.internal.gitserver/internallibrary.git
ΠΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΏΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ?
ΠΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ΄Π°Π»ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈΡ Π·Π°ΠΌΠ΅Π½Π° (ΠΊΠΎΡΠΎΡΡΡ PyPI ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ Π²Ρ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠ΅ΡΡ Π½Π° Π½ΠΈΡ ).
@dstufft Π§ΡΠΎ ΡΡΠΎ Π·Π° Π·Π°ΠΌΠ΅Π½Π°?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° PackageA ΠΈ PackageB, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΡΠ°ΡΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Git, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ PackageA, Π° PackageA Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ PackageB. Π― Π½Π΅ Π½Π°ΡΠ΅Π» ΡΠΏΠΎΡΠΎΠ±Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PackageB Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ PackageA ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
@connorbode, ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° devpi Ρ Π²ΡΠΏΡΡΠΊΠ°ΠΌΠΈ, ΡΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ pip Π½Π° devpi Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΡΠ»ΠΊΠ°Ρ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΈ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°ΠΆΠ°ΡΡ / ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ pypi Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΠ΅ΡΠΈ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@dstufft Π§ΡΠΎ ΡΡΠΎ Π·Π° Π·Π°ΠΌΠ΅Π½Π°?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° PackageA ΠΈ PackageB, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΡΠ°ΡΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Git, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ PackageA, Π° PackageA Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ PackageB. Π― Π½Π΅ Π½Π°ΡΠ΅Π» ΡΠΏΠΎΡΠΎΠ±Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PackageB Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ PackageA ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.