Pip: рдбрд╛рдпрд░реЗрдХреНрдЯ рдпреВрдЖрд░рдПрд▓ рдкреАрдИрдкреА 508 рдЧрд┐рдЯ рд╕реЗ рдЙрдк-рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рд╕реНрдерд╛рдкрдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдЬреБрд▓ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pip

  • рдкрд┐рдк рд╕рдВрд╕реНрдХрд░рдг: 10.0.1
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.7.0
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: macOS

рдореИрдВрдиреЗ рдкреВрд░рд╛ рджрд┐рди рдЧрд┐рдЯ рд╕реЗ рдЙрдк-рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рднреА рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛

рдореИрдВрдиреЗ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА (PyPi рдкрд░ рдЙрдкрд▓рдмреНрдз) рдХреЛ рдлреЛрд░реНрдХ рдХрд┐рдпрд╛, рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдЬреЛрдбрд╝реЗ рдЬреЛ рдХрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реА рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рдВрдЯреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВред рдкрд╣рд▓реЗ рдпрд╣ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдерд╛, рдФрд░ рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ рдореИрдВ рдкрд┐рдкрдлрд╛рдЗрд▓ рдореЗрдВ рдЧрд┐рдЯ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдЦрд╛/рдкреНрд░рддрд┐рдмрджреНрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдореЗрд░рд╛ рдЖрд╡реЗрджрди рдмрдврд╝рддрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдм рдореИрдВ рдЗрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдпрд╣ рдкреАрдкреАрдкреАрдЖрдИ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред рдореБрдЭреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рд╕реЗ рдЙрдк-рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдкрдврд╝рд╛ рд╣реИ: #3610, #4187, #2124, #5384 рдФрд░ рдХрдИ рдЕрдиреНрдп рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреАрдИрдкреАред рдЬрдм рдореИрдВрдиреЗ рдкрдврд╝рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдЙрд╕ рд╕рдордп рд╕реЗ рднреА рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдерд╛ рдЬрдм рдореИрдВрдиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред

рдкреАрдИрдкреА -508 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛, рдЙрд╕рд╕реЗ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

setup(
    name='dmfigol',
...
    install_requires=[
        "requests",
        'smartsheet-python-sdk @ git+ssh://[email protected]/dmfigol/smartsheet-python-sdk@dev#egg=smartsheet-python-sdk-1.3.3',
    ],
)

рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛:

-> % pip install git+https://<private-git>/dmfigol/my-test-project.git
Collecting git+https://<private-git>/dmfigol/my-test-project.git
  ...
Direct url requirement (like smartsheet-python-sdk@ git+ssh://[email protected]/dmfigol/smartsheet-python-sdk@dev#egg=smartsheet-python-sdk-1.3.3) are not allowed for dependencies

рдореЗрд░реЗ рд╕рд╡рд╛рд▓:
1) рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рдпрд╛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ?
2) рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
3) рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдореИрдВ setup.py рд╕реЗ рдХреБрдЫ рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ pyproject.toml рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
4) рдХреНрдпрд╛ --process-dependency-links рдФрд░ dependency_links рдЕрдиреБрднрд╛рдЧ рдХреЛ setup.py рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЬ рдПрдХрдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рдзрд╛рди рд╣реИ?
5) рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдкрд╕реНрдЯреНрд░реАрдо PyPi рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ 1.3.4 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрднреА рднреА рдЕрдкрдиреЗ рдлреЛрд░реНрдХрдб рд╕рдВрд╕реНрдХрд░рдг 1.3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛?

рд╢реБрдХреНрд░рд┐рдпрд╛

UPD: рдпрджрд┐ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддреЗ рд╣реИрдВ рддреЛ #4187 рддрдХ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

setup(
    ...
    install_requires=[
        "smartsheet-python-sdk==10.1.3.3",
    ],
    dependency_links=[
        'https://github.com/dmfigol/smartsheet-python-sdk/archive/no-setuptools-scm.zip#egg=smartsheet-python-sdk-10.1.3.3'
    ],
...
auto-locked support

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

рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рдпрд╛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ?

рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдИрдкреА 508 рдпреВрдЖрд░рдПрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рд╣рд╛рдВред рдирд┐рдЪреЗ рджреЗрдЦреЛред

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдореИрдВ setup.py рд╕реЗ рдХреБрдЫ рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ pyproject.toml рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

pyproject.toml рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ setup.py рдореЗрдВ --рдкреНрд░реЛрд╕реЗрд╕-рдирд┐рд░реНрднрд░рддрд╛-рд▓рд┐рдВрдХреНрд╕ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛_рд▓рд┐рдВрдХреНрд╕ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЬ рдПрдХрдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рдзрд╛рди рд╣реИ?

рд╣рд╛рдВред #4187 рдХреЗ рдкреАрдЫреЗ рдпрд╣реА рдкреВрд░реА рдкреНрд░реЗрд░рдгрд╛ рд╣реИред


рд╣рдордиреЗ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдкреАрдИрдкреА 508 рдпреВрдЖрд░рдПрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреАрдИрдкреАрдЖрдИ рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд╛рдЗрдк рдПрдХ рдордзреНрдпрд╕реНрде рд╡реЗрдм рдпреВрдЖрд░рдПрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗред рдореВрд▓ рд░реВрдк рд╕реЗ, pip install spam рдХреЛ рдкреАрдИрдкреАрдЖрдИ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рддрдХ рдкрд╛рдЗрдк рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

#4187 рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдЕрд╡рд░реБрджреНрдз рд╕рд╢рд░реНрдд рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ URL рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗ рдЬрдм рдХреЛрдИ рдкреИрдХреЗрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдзреЗ PyPI рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рддрд╛рдХрд┐ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ PEP 508 URL рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред

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

рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рдпрд╛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ?

рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдИрдкреА 508 рдпреВрдЖрд░рдПрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рд╣рд╛рдВред рдирд┐рдЪреЗ рджреЗрдЦреЛред

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдореИрдВ setup.py рд╕реЗ рдХреБрдЫ рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ pyproject.toml рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

pyproject.toml рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ setup.py рдореЗрдВ --рдкреНрд░реЛрд╕реЗрд╕-рдирд┐рд░реНрднрд░рддрд╛-рд▓рд┐рдВрдХреНрд╕ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛_рд▓рд┐рдВрдХреНрд╕ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЬ рдПрдХрдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рдзрд╛рди рд╣реИ?

рд╣рд╛рдВред #4187 рдХреЗ рдкреАрдЫреЗ рдпрд╣реА рдкреВрд░реА рдкреНрд░реЗрд░рдгрд╛ рд╣реИред


рд╣рдордиреЗ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдкреАрдИрдкреА 508 рдпреВрдЖрд░рдПрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреАрдИрдкреАрдЖрдИ рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд╛рдЗрдк рдПрдХ рдордзреНрдпрд╕реНрде рд╡реЗрдм рдпреВрдЖрд░рдПрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗред рдореВрд▓ рд░реВрдк рд╕реЗ, pip install spam рдХреЛ рдкреАрдИрдкреАрдЖрдИ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рддрдХ рдкрд╛рдЗрдк рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

#4187 рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдЕрд╡рд░реБрджреНрдз рд╕рд╢рд░реНрдд рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ URL рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗ рдЬрдм рдХреЛрдИ рдкреИрдХреЗрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдзреЗ PyPI рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рддрд╛рдХрд┐ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ PEP 508 URL рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред

рд╡рд┐рд╕реНрддреГрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

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

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

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

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

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

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

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