<p>рдкрд╛рдЗрдк 19.0 рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдЬреЛ CWD рд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ</p>

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

рд╡рд╛рддрд╛рд╡рд░рдг

  • рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг: 19.0
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.6
  • OS: MacOS

рд╡рд┐рд╡рд░рдг
рдЬрдм рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pyinstaller == 3.4 рдкрд╛рдЗрдк 19.0 рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред ModuleNotFoundError: 'PyInstaller' рдирд╛рдо рдХрд╛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рдкрд╛рдИрдк рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 18.1 рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рд╣реИ

рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ
Python3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
рдкрд┐рдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ pyinstaller = 3.4

рдЙрддреНрдкрд╛рджрди

pip install pyinstaller==3.4
Collecting pip
  Using cached https://files.pythonhosted.org/packages/60/64/73b729587b6b0d13e690a7c3acd2231ee561e8dd28a58ae1b0409a5a2b20/pip-19.0-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-19.0
(BuildVEnv) jlaroche-mbp:TrackSense$ pip install pyinstaller
Collecting pyinstaller
  Using cached https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  Complete output from command /Users/jlaroche/Dev/uapkg/packages/system/algo/BuildVEnv/bin/python3 /Users/jlaroche/Dev/uapkg/packages/system/algo/BuildVEnv/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /var/folders/j6/7t8sg1vj4q97zhh9z5cdmxbm4rz935/T/tmps3z6flnv:
  Traceback (most recent call last):
    File "/Users/jlaroche/Dev/uapkg/packages/system/algo/BuildVEnv/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 207, in <module>
      main()
    File "/Users/jlaroche/Dev/uapkg/packages/system/algo/BuildVEnv/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 197, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/Users/jlaroche/Dev/uapkg/packages/system/algo/BuildVEnv/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 54, in get_requires_for_build_wheel
      return hook(config_settings)
    File "/private/var/folders/j6/7t8sg1vj4q97zhh9z5cdmxbm4rz935/T/pip-build-env-lo_ir5_f/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 115, in get_requires_for_build_wheel
      return _get_build_requires(config_settings, requirements=['wheel'])
    File "/private/var/folders/j6/7t8sg1vj4q97zhh9z5cdmxbm4rz935/T/pip-build-env-lo_ir5_f/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 101, in _get_build_requires
      _run_setup()
    File "/private/var/folders/j6/7t8sg1vj4q97zhh9z5cdmxbm4rz935/T/pip-build-env-lo_ir5_f/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 85, in _run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 20, in <module>
      from PyInstaller import __version__ as version, HOMEPATH, PLATFORM
  ModuleNotFoundError: No module named 'PyInstaller'

рд╕рдордп рдкрд░ рдЕрдиреБрд░рдХреНрд╖рдХ рдиреЛрдЯ: https://github.com/pypa/pip/issues/6163#issuecomment -460563963 рджреЗрдЦреЗрдВ

PEP 517 impact auto-locked bug

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

[...] рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ - рдЙрдкрдпреЛрдЧ- pep517 рдЙрдирдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

PyInstaller --no-use-pep517 рд╕рд╛рде рдареАрдХ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реИред

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

рдпрд╣ рдпрд╛ рддреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

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

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо 18.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ 19.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред PyInstaller repo рдкрд░ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ pip '' sys.path рдореЗрдВ рдирд╣реАрдВ рд╣реИред

https://github.com/pyinstaller/pyinstaller/issues/2730

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИред рдЖрдкрдиреЗ __version__ = "1.2.3" foo/__init__.py рдбрд╛рд▓ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ import foo рдХреЛ setup.py рддрд╛рдХрд┐ рдЖрдкрдХреЛ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░рдирд╛ рдкрдбрд╝реЗред рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ PEP 396 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред

# foo/__init__.py
__version__ = "1.2.3"
# setup.py
from setuptools import setup

import foo

setup(..., version=foo.__version__)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ pyproject.toml рдлрд╝рд╛рдЗрд▓ (рдФрд░ setup.py ) рд╣реЛред рдЗрд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдБ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ sys.path / PYTHONPATH рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ?

рдЖрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд╣реА рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЪреВрдВрдХрд┐ pyproject.toml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╛рдЗрдк рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк PEP 517/518 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

# pyproject.toml
[build-system]
requires = ["setuptools", "wheel"]

рдЙрдкрд░реЛрдХреНрдд рдкрд╛рдЗрдк рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ PyInstaller рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ setuptools рдФрд░ wheel рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди PyInstaller рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрд╕рдХреЗ setup.py рдореЗрдВ рднреА рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ:

# setup.py
from PyInstaller import __version__

PEP 517 рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, setuptools рдФрд░ wheel , рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рдЬрд░реВрд░ рд╣реИред

# pyproject.toml
[build-system]
requires = ["setuptools", "wheel", "PyInstaller"]

рдЬреИрд╕рд╛ рдХрд┐ @cjerdonek рдиреЗ https://github.com/pypa/pip/issues/6175#issuecomment -456769285 рдореЗрдВ рдмрддрд╛рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ --no-use-pep517 рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ?

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХрд╛рд░рдг рдЕрд▓рдЧрд╛рд╡ рд╣реИ рдпрд╛ рдкреАрдИрдкреА 517 рдХреЛрдб рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЬрдбрд╝ sys.path рдкрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдВрдбрд╛ рдХреЗ рдкрд╛рд╕ рд╕реЗрдЯрдЕрдк рд╡рд░реНрдЪрд╕реНрд╡ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рд╡рд░реНрдЬрди-рдереНрд░реАрдбреА рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреНрдпрд╛ рдереАред рдЗрд╕реЗ рд╕реЗрдЯрдкреВрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рдХреЗ рдмрдЬрд╛рдп рдмреИрдХрдПрдВрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рдЕрд▓рдЧрд╛рд╡ рддрдВрддреНрд░ рдХреА рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИред

[...] рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ - рдЙрдкрдпреЛрдЧ- pep517 рдЙрдирдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

PyInstaller --no-use-pep517 рд╕рд╛рде рдареАрдХ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдП PEP 517 рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░реВрдЯ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ sys.path рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @pfmoore рдХреЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рд╕рдордЭ рд╣реЛ, рдЕрдЧрд░ рдЙрд╕рдореЗрдВ рдкрд╛рдЗрдк рдХреА рд░рд┐рд╕реНрдкрд╛рдВрд╕рдмрд┐рд▓рд┐рдЯреА рдпрд╛ рд╕реЗрдЯрдкреВрд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдпрд╣ рдЗрд╕рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдорджрдж рдХрд░рддрд╛ рд╣реИ ( apache-airflow pip install pendulum==1.4.4 рд╡рд┐рдлрд▓ рд╣реИ, рд▓реЗрдХрд┐рди pip install --no-use-pep517 pendulum==1.4.4 рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

Collecting pendulum==1.4.4
  Using cached https://files.pythonhosted.org/packages/85/a5/9fc15751f9725923b170ad37d6c61031fc9e941bafd5288ca6ee51233284/pendulum-1.4.4.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  Complete output from command /Users/ash/.virtualenvs/clean-airflow/bin/python3.7 /Users/ash/.virtualenvs/clean-airflow/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /var/folders/lr/9jc9vkgn025fn6jmwm4mv4_w0000gn/T/tmprosed3kj:
  Traceback (most recent call last):
    File "/Users/ash/.virtualenvs/clean-airflow/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 207, in <module>
      main()
    File "/Users/ash/.virtualenvs/clean-airflow/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 197, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/Users/ash/.virtualenvs/clean-airflow/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 54, in get_requires_for_build_wheel
      return hook(config_settings)
    File "/private/var/folders/lr/9jc9vkgn025fn6jmwm4mv4_w0000gn/T/pip-build-env-g__m0jh6/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 115, in get_requires_for_build_wheel
      return _get_build_requires(config_settings, requirements=['wheel'])
    File "/private/var/folders/lr/9jc9vkgn025fn6jmwm4mv4_w0000gn/T/pip-build-env-g__m0jh6/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 101, in _get_build_requires
      _run_setup()
    File "/private/var/folders/lr/9jc9vkgn025fn6jmwm4mv4_w0000gn/T/pip-build-env-g__m0jh6/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 85, in _run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 47, in <module>
      from build import *
    File "/Users/ash/.virtualenvs/clean-airflow/lib/python3.7/site-packages/pip/_vendor/pep517/build.py", line 7, in <module>
      from pip._vendor import pytoml
  ModuleNotFoundError: No module named 'pip'

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рд╕реНрдерд╛рдкрдирд╛ рднреА рдкрд╛рдЗрдк рд╡реА 19.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ -no-use-pep5517 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИ:
рдкреЗрдВрдбреБрд▓рдо == 1.5.0 (рдЧреБрдгрд╕рдореВрд╣: рдореЙрдбреНрдпреВрд▓ 'рдПрдирдо' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'IntFlag')
рдкреЗрдВрдбреБрд▓рдо == 1.5.1 (рдЧреБрдгрд╕рдореВрд╣: рдореЙрдбреНрдпреВрд▓ 'рдПрдирдо' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'IntFlag')
рдкреЗрдВрдбреБрд▓рдо == 2.0.0 (рдЧреБрдгрд╕рдореВрд╣: рдореЙрдбреНрдпреВрд▓ 'рдПрдирдо' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'IntFlag')
рдкреЗрдВрдбреБрд▓рдо == 2.0.1 (рдЧреБрдгрд╕рдореВрд╣: рдореЙрдбреНрдпреВрд▓ 'рдПрдирдо' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'IntFlag')
рдкреЗрдВрдбреБрд▓рдо == 2.0.2 (рдЧреБрдгрд╕рдореВрд╣: рдореЙрдбреНрдпреВрд▓ 'рдПрдирдо' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'IntFlag')

рдЬрдмрдХрд┐ 2.0.3 рдФрд░ 2.0.4 рдареАрдХ рд╣реИред

рдХрд╛рд░реНрдЯреЛрдкреА (рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ) рднреА 19.0 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреА рд╣реИ, рдЗрд╕рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣реИ

рдпрд╣ рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдЬрд┐рдирд╕реЗ рдореИрдВ рдирд┐рдкрдЯрддрд╛ рд╣реВрдВред рд╣рдо рдЕрдкрдиреЗ python рдХрд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ setup.py рдореЗрдВ рд╕рдорд╛рди from project.version import __version__ рдХрд░рддреЗ рд╣реИрдВред

рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ pyproject.toml рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рд▓рд┐рдП --no-buid-isolation рдпрд╛ --no-use-pep517 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рдЕрдиреБрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ

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

PEP 517 рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯ рдХреЛ рдПрдХ рдРрд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реБрдХ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ sys.path рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдордиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ 19 рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд▓реЗрдХрд┐рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рдирд╣реАрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ sys.path рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдореАрдЪреАрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЗрд╕ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

рд╕рд╛рд░рд╛рдВрд╢:

  1. рдпрд╣ рдПрдХ рдмреИрдХрдПрдВрдб рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕реЗ рд╕реЗрдЯрдЯреЙрдкреВрд▓ рдмреИрдХреЗрдВрдб рдореЗрдВ рддрдп рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ (рд╕рдВрднрд╡рдд: рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрд┐рд▓реНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ sys.path рдЬреЛрдбрд╝рдХрд░) рдЖрджрд░реНрд╢ рд╕рдВрдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВред
  2. рдЕрдЧрд░ рд╕реЗрдЯрдЯреЙрдкреНрд╕ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдЗрдк рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ sys.path рдбрд╛рдпрд░реЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ PEP 517 рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯреЗрдВрдб рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред
  3. рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдкрд░ рд╣реБрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ sys.path рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреАрдИрдкреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдИрдкреА 517 рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЗрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ-(рдпрд╛ рдмрд▓реНрдХрд┐, рдмреИрдХреЗрдВрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд╛рдпрдерди рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ setup.py рдореЗрдВ рдХреБрдЫ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЖрдо рдмрд╛рдд рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЪреАрдЬреЛрдВ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ setup.py $PWD ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЛ setuptools рдкрд░ рдзрдХреЗрд▓рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕реЛрдЪрдирд╛, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рдлрд▓рддрд╛ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред рдкреНрд░реА-рдкреАрдИрдкреА 517, рдкрд╛рдЗрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ setup.py рднрд╛рдЧрд╛, рдЗрд╕рд▓рд┐рдП рдорд╛рдирдХ рдкрд╛рдпрдерди рдирд┐рдпрдореЛрдВ рдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ sys.path ред PEP 517 рдХреЗ рддрд╣рдд, setup.py рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреЛ рдмреИрдХрдПрдВрдб рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рд╣реБрдХ рдХреЛ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдкреНрдЯреБрдкреВрд▓ рд╣реБрдХ рд╕реЗ setup.py -рдЗрди-рдкреНрд░реЛрд╕реЗрд╕ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ sys.path рд╕реНрд╡рдпрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрдореНрдореАрдж рд╣реИ, рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред @jeanlaroche (рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ) рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП, рд╕реЗрдЯрдкреВрд▓рд░ рдЯреНрд░реИрдХрд░ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ?

[...] рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ - рдЙрдкрдпреЛрдЧ- pep517 рдЙрдирдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ -no-use-pep517 рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП pip install pandas рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рд╕рднреА рдЯреВрдЯреЗ рд╣реБрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП --no-use-pep517 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╕рдлрд▓рддрд╛

pip install pyinstaller --no-use-pep517
Collecting pyinstaller
  Using cached https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz
Requirement already satisfied: setuptools in c:\python37\lib\site-packages (from pyinstaller) (39.0.1)
Collecting pefile>=2017.8.1 (from pyinstaller)
  Downloading https://files.pythonhosted.org/packages/ed/cc/157f20038a80b6a9988abc06c11a4959be8305a0d33b6d21a134127092d4/pefile-2018.8.8.tar.gz (62kB)
    100% |тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 71kB 1.0MB/s
Collecting macholib>=1.8 (from pyinstaller)
  Downloading https://files.pythonhosted.org/packages/41/f1/6d23e1c79d68e41eb592338d90a33af813f98f2b04458aaf0b86908da2d8/macholib-1.11-py2.py3-none-any.whl
Collecting altgraph (from pyinstaller)
  Downloading https://files.pythonhosted.org/packages/0a/cc/646187eac4b797069e2e6b736f14cdef85dbe405c9bfc7803ef36e4f62ef/altgraph-0.16.1-py2.py3-none-any.whl
Collecting pywin32-ctypes (from pyinstaller)
  Using cached https://files.pythonhosted.org/packages/9e/4b/3ab2720f1fa4b4bc924ef1932b842edf10007e4547ea8157b0b9fc78599a/pywin32_ctypes-0.2.0-py2.py3-none-any.whl
Collecting future (from pefile>=2017.8.1->pyinstaller)
  Downloading https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz (829kB)
    100% |тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 829kB 1.6MB/s
Installing collected packages: future, pefile, altgraph, macholib, pywin32-ctypes, pyinstaller
  Running setup.py install for future ... done
  Running setup.py install for pefile ... done
  Running setup.py install for pyinstaller ... done
Successfully installed altgraph-0.16.1 future-0.17.1 macholib-1.11 pefile-2018.8.8 pyinstaller-3.4 pywin32-ctypes-0.2.0

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдкреАрдИрдкреА 517 рдХреЗ рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдХреНрд╢рди рдХреЗ рдкрд┐рдк / рд╕реЗрдЯрдкреНрдЯреЙрд▓реНрд╕ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ pyproject.toml рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВред

рдпрд╣ рднреА setup.py рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдПрдХ рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ? рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ PyPA рдХреЗ рдЗрд╕ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЧрд╛рдЗрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

Pypa / setuptools # 1642 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ, @ururusjr рдФрд░ рдореИрдВ рджреЛрдиреЛрдВ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ . sys.path рдЬрдм рдЖрдк рдПрдХ рдкрд░ рдЕрдорд▓ рдХрд░рддреЗ рд╣реИрдВ рдкрд╛рдЗрдерди рд▓рд┐рдкрд┐, рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ pyproject.toml рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ PEP 518 рдФрд░ PEP 517 рджреЛрдиреЛрдВ рдореЗрдВ рдкрд╕рдВрдж рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдмрд┐рд▓реНрдб рдмреИрдХреЗрдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛ, рдЖрдк рдЕрдЪрд╛рдирдХ рдирдП рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ pip рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ PE pyproject.toml 518 рдореЗрдВ

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдХрдард┐рди рд╕реНрдерд┐рддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ pip рд▓рд┐рдП рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ setuptools ред рдпрджрд┐ рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП PEP 517 рдСрдкреНрдЯ-рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ pyproject.toml рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ 20.0 рдпрд╛ 21.0 рдХреЗ рдмрд╛рдж PEP 517 рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛, рддреЛ рд╣рдо рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ pip рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП build-backend pyproject.toml рд╕реЗ рдЧрд╛рдпрдм рд╣реИ, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ 21.0 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЕрд▓рдЧрд╛рд╡ setuptools.build_meta рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛, рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВ ..."

setup.py рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХреЛ рднреА рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ? рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ PyPA рдХреЗ рдЗрд╕ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЧрд╛рдЗрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЧрд╛рдЗрдб setup.py рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрджрд┐ рд╣рдо рдЙрд╕ рддрд░рд╣ рдХреА рд░рдгрдиреАрддрд┐ рд╕реЗ рджреВрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡рд╣ рдЙрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рди рд╣реЛред

pyproject.toml рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ PEP 517 рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдПрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡рд┐рдХрд▓реНрдк рдерд╛ (рдЪрд░реНрдЪрд╛ рд╕рдВрднрд╡рддрдГ PEP 517 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрджреНрджреЗ рдпрд╛ PR рдкрд░ рдереА, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рд╕рдордп рдирд╣реАрдВ рд╣реИ)ред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдЗрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЬреЛ рдирд┐рд░реНрдгрдп рдХрд┐рдпрд╛, рдЙрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрд┐рдк рдЦреБрдж ( setup.py sys.path рдЗрддрдирд╛ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд╕ рдкрд╛рдЗрдк рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдЕрдирд┐рдЪреНрдЫреБрдХ рд╣реВрдБ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдПрдХ рдЕрд▓рдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдкреБрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ setup.py рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЕрдм рддрдХ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдорд╛рдирд╛ рдХрд┐ рдмреИрдХреЗрдВрдб рдХреЛ рдЙрд╕ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдкрд╛рдЗрдк рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реЛ, рднрд▓реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдмрд┐рд▓реНрдб рдЖрдЗрд╕реЛрд▓реЗрд╢рди" setuptools.build_meta "рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрдврд╝реЗрдВрдЧреЗ" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ setup.py рд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ pyproject.toml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред IMO рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рд▓реЛрдЧ рдпрд╣ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкрд┐рдк рд╕реНрд╡рдпрдВ (рдирд╣реАрдВ, IMO) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрдЯрдЕрдк рдерд┐рдВрдХрд╣реЛрдо рдпрд╣ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА sys.path рдкрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкрд╛рдЗрдк рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдЕрдирд┐рдЪреНрдЫреБрдХ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрдкреВрд▓ рдПрдХ рдзрдХреНрдХрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЕрд▓рдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯред

рд╕рдЪ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл pip рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ setuptools.build_meta рд╣реБрдХ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ setup.py рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо ( setuptools ) setuptools.build_meta рдХрд╛ рдЕрдиреБрдмрдВрдз рдЪрд╛рд╣рддреЗ рд╣реИрдВ "рдпрд╣ python setup.py рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ setup.py рд╕реАрдзреЗ

рдмреЗрд╢рдХ setuptools "рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдиреБрдмрдВрдз рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ" рдФрд░ pip рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, "рд╣рдорд╛рд░рд╛ рдирд┐рд░реНрдгрдп рдпрд╣ рдерд╛ рдХрд┐ рдпрд╣ PEP 517 рдХреЗ рд▓рд┐рдП рдЪреВрдХ рдЧрдпрд╛" рдФрд░ рд╣рдо рджреЛрдиреЛрдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмрдЧ рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╕рдордиреНрд╡рдп рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рдЗрдк рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ, рддреЛ рднреА рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рд╕реЗрдЯ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯрдЕрдкреВрд▓реЛрд╕рд┐рд╡рдмрд┐рд▓реНрдЯреА_рдореЗрдЯрд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдкрдврд╝реЗрдВрдЧреЗ "рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдЖрдк рд╕реЗрдЯрдЕрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ"? рджреЛ рддрдереНрдп рдореБрдЭреЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд▓рдЧрддреЗ рд╣реИрдВ ...

рд╡реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдХрд╣рдирд╛ рд╣реИ, "рдХреГрдкрдпрд╛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░рд╣реЗрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд▓реНрдж рд╣реА рд╣рдо рдЖрдкрдХреЛ рдПрдХ рдРрд╕реА рдЪреАрдЬрд╝ рдЪреБрдирдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреА рд╣реИред" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдмреИрдХреЗрдВрдб рдХреЛ рдЕрдкрдиреЗ pyproject.toml рд╕рдордп рд╕реЗ рдЖрдЧреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреВрдЯрдиреЗ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рд╕рдВрднрд╡рддрдГ setuptools рдЬреИрд╕реЗ setuptools.build_meta_legacy рдПрдХ "рдбрдореА" PEP рдмреИрдХрдПрдВрдб рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ chdir s рд╣реИ рдФрд░ setuptools.build_meta , рдЙрд╕ рддрд░рд╣ рд╕реЗ рд▓реЛрдЧ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЪрдпрди рддрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рдЯреВрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ pyproject.toml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред IMO рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ PEP 517 рдФрд░ PEP 518 рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред PEP рдХреЗ рд▓рд┐рдП "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди" рдХреНрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ PEP 517 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдкреВрд░реЗ " pyproject.toml рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖрдк рдЕрд▓рдЧрд╛рд╡ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕реЗ рджреЗрдЦрдХрд░, рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреА рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ setuptools.build_meta ред

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

рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ build_meta_legacy рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдВ), рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╛рдЗрдк рдХрд╛ рдЗрд░рд╛рджрд╛ (рдпрд╣ "рдХреЙрд░реНрдкреЛрд░реЗрдЯ" рдкрд╛рдЗрдк рд╣реИ ;-) - рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╛рдЗрдк рджреЗрд╡реЛрдВ рдиреЗ рдЗрд╕ рдкрд░ рдереЛрдбрд╝реА рдЪрд░реНрдЪрд╛ рдХреА рдФрд░ рдПрдХ рдЖрдо рд╕рд╣рдорддрд┐ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рдХрд┐ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдареЛрд╕ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ) рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдкреАрдИрдкреА 517 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ setup.py рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдкрде рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВред рд╕реЗрдЯрдкреВрд▓ рдХреЛ рдмреИрдХрдк рдореЗрдВ рдХреЗрд╡рд▓ 21.0 (рдКрдкрд░ рд╕реЗ рд╕реБрдЭрд╛рдИ рдЧрдИ рд░рд┐рд▓реАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдмрдирд╛рдиреЗ рд╕реЗ рдХрдо рд╕реЗ рдХрдо 2 рд╕рд╛рд▓ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдзрдХреНрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЬрдмрдХрд┐ PEP 517 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рд╕рдЪред рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдкрд┐рдк setuptools рдХреЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдЖрдЦрд┐рд░рдХрд╛рд░, рдкреАрдИрдкреА 517 рдХреЗ рдкреВрд░реЗ рдмрд┐рдВрджреБ (рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо), рдмреИрдХрдПрдВрдб рд╕реЗ рдлреНрд░рдВрдЯреЗрдВрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдмреИрдХреЗрдВрдб рдХреЛ рдПрдХ рд╕рдорд╛рди рдкрд╛рдпрджрд╛рди рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рднреА рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╛ рддреЛ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдмреИрдХрдПрдВрдб рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЪреБрдиреЗрдВ (рдФрд░ рд╣рдо рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП)ред рдпрд╣рд╛рдВ рдмрд╣рд╕ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВред

рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд▓рд┐рдП рдкрд┐рдк рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2 рдХреЛрдб рдкрде рд╣реИрдВ - PEP 517 рдкрде, рдФрд░ рд╡рд┐рд░рд╛рд╕рдд setup.py рдкрдеред рдпрд╣ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдореБрджреНрджреЛрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реИред рд╣рдордиреЗ PEP 517 рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛, рдЕрдЧрд░ pyproject.toml PEP 517 рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рдерд╛ (рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ build-backend = setuptools.buid_meta рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд░реЗрдВрдЧреА, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд┐рдирд╛, рдСрдбреНрд╕ рдпрд╣ рд╣реИ рдХрд┐) рдкрд╛рдЗрдк рдХреЗ рдкреАрдИрдкреА 517 рдХреЛрдб, рдФрд░ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХреЗ рдмреИрдХреЗрдВрдб рджреЛрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдХреЗ рдкрд╛рд╕ рд░рд╣реЗрдЧрд╛)ред рд╡рд╣рд╛рдБ --no-use-pep517 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдСрдкреНрдЯ-рдЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИ, (рджреБрд░реНрд▓рдн рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рд╕реЗрдЯрдкреБрд▓реНрд╕ рдмреИрдХреЗрдВрдб рдЕрдиреБрдкрдпреБрдХреНрдд рдерд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рд╕реЗрдкреНрдЯреЛрд▓реВрд▓ setup.py рдФрд░ рдмреИрдХрдПрдВрдб рдХреЗ рдмреАрдЪ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЕрдВрддрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЕрдВрддрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --no-use-pep517 рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдпрд╣ рдЕрдХреНрд╕рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░ рднреА рдХрднреА рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рдо рд╕рдВрднрд╡рддрдГ "рдЧреБрдкреНрдд" рдкреАрдИрдкреА 517 рдмреИрдХреЗрдВрдб рдореЗрдВ рд╕реЗрдЯрдкреВрд▓рд╕реВрд▓рд╕рдмрд┐рд▓реНрдЯ_рдЗрдВрдЯрд╛_рдореЗрдЯрд╛ рдЬреИрд╕реЗ рд╕реЗрдЯрдкреВрд▓ рдореЗрдВ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕рд┐рд░реНрдл рдЪрд┐рд░реНрд░рд┐рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрдкреВрд▓реБрд▓реЗрд╕рд┐рдмрд┐рд▓реНрдЯ_рдореЗрдЯрд╛ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рд▓реЛрдЧ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЪрдпрди рддрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рддреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред ред

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЪрд░реНрдЪрд╛ рдХрд┐рддрдиреА рдЙрдкрдпреЛрдЧреА рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдЗрд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдПрдХ рдкреАрдЖрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓ рджреЗрдВ, рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдЕрдиреБрдЪрд░ рдХреЗ рд▓рд┐рдП: рдореИрдВрдиреЗ рдПрдХ рд╢рд┐рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ sys.path рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

https://pypi.org/project/setuptools-localimport/

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯреЙрдкрдЧреИрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкрд╛рдЗрдк 19.0 рдХреЛ рдЕрдкрдирд╛рдирд╛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП (рдЬрд┐рд╕рдореЗрдВ рдкреАрдИрдкреА 517 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдЪреНрдЫрд╛рдИ рд╣реЛ)ред

рдореИрдВрдиреЗ рдПрдХ рд╢рд┐рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ sys.path рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рд╡рд╣ рддреЛ рдХрдорд╛рд▓ рд╣реИ! рдЕрдВрддрд┐рдо рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ PEP 517 рд╣реБрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ :-)

рдореИрдВрдиреЗ рдЗрд╕реЗ 19.x рдХреЗ рддрд╣рдд рдЕрдкрдиреЗ рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛, рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛ рдЧрдпрд╛

рддреАрд╕рд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ: рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рд▓реНрдб рдмреИрдХреЗрдВрдб рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: setuptools рдХреЗрд╡рд▓ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ wheel рд╕реВрдЪреА рджреЗрддреЗ рд╣реИрдВ:

[build-system]
requires = ["wheel"]
build-backend = "setuptools.build_meta"

рдпрджрд┐ рдкреАрдИрдкреА 517 рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдХрд╛ рдХреЛрдб sys.path рдХреЗ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

PEP 517 рд╕реЗ:

рдореЙрдбреНрдпреВрд▓ рдкрде рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рд╕реНрд░реЛрдд рдЯреНрд░реА рд╕реЗ рдпреБрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рд╡реИрд╕реЗ рднреА sys.path рдкрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ PYTHONPATH рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкрд╛рдпрдерди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ sys.path рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдмреИрдХрдПрдВрдб рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ (рдореЗрд░реЗ рд▓рд┐рдП) рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ build-backend рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП - рдЗрд╕рд▓рд┐рдП setuptools рдХреЛ рдЦреБрдж рдХреЛ requires IMO рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХрд░рдирд╛ рдкрд░рд┐рдкрддреНрд░ рд╣реИред рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдЬреЛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рд╡реИрд╕реЗ рднреА рдЙрдирдХреЗ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ рдХрд╛рдлреА рдкрд░рд┐рдкрддреНрд░ рд╣реИрдВ - рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИрдВред

рдпрд╣реА рдЦрдВрдб рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЗ sys.path рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд╣ --no-binary :all: рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛?

@pfmoore рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЬ рдПрдХ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ (рдФрд░ bdist рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди sdist рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА, рд╢рд╛рдпрдж рдХреБрдЫ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ cusomise рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рдпрд╛ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЛ рдХрд╕реНрдЯрдо рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреБрдЫ рдЗрд╕ рддрд░рд╣

project/
    custom_build.py
    src/
        my_package/
            __init__.py
            ...
    pyproject.toml  
[build-system]
requires = []
build-backend = "custom_build"

# Maybe the custom backend specifies metadata like thisтАж
[tool.custom_build.metadata]
name = "my-package"
dependencies = []
packages = ["my_package"]

рд╢рд╛рдпрдж рдПрдХ рд╕рдорд╛рдзрд╛рди рдПрдХ рдирдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдореЙрдбреНрдпреВрд▓ рдХрд╣рд╛рдВ рдЦреЛрдЬрдирд╛ рд╣реИ?

[build-system]
requires = []
build-backend = "custom_build"
build-backend-findpath = ["build_systems"]   # Put custom_build.py above in a subdirectory.

рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ [] (рд░рд┐рдХреНрдд рд╕реВрдЪреА) рдХреЗ рд▓рд┐рдП рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рдкрде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдорд╛рди), рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ build-system рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрднрд╛рдЧ рдЗрд╕рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИ:

requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
build-backend-findpath = [""]

рдкрд╛рдЗрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрддрд╛рд╡рдиреА / рд╕реВрдЪрдирд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде, рд╕рдВрднрд╛рд╡рдирд╛)ред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╛рдЗрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ pep517 рдореЙрдбреНрдпреВрд▓, рдкреНрд░рддрд┐рд╢реЛрдзрд┐рдд)ред рд╕реЗрдЯрдкреВрд▓ рдпрд╛ рдореМрдЬреВрджрд╛ рдЯреВрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЬ рдПрдХ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдпрд╣ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкреАрдИрдкреА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ - рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЪрд░реНрдЪрд╛ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреАрдИрдкреА рдХреЛ рдХрдм рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, PEP 517 рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ ( build-backend рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ) "рдЬрдм рдореЙрдбреНрдпреВрд▓ рдкрде рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрд░реЛрдд рдЯреНрд░реА рд╕реЗ рдпреБрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ sys.path рдкрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред "рдЬреЛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрди-рдЯреНрд░реА рдмреИрдХреЗрдВрдб рдХреЗ рд▓рд┐рдП рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреБрдЯрд┐рд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ)ред

рдЬрдм рд╣рдо PEP 517 рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдпрд╣ рдерд╛ рдХрд┐ рдмреИрдХрдПрдВрдбреНрд╕ рдХреЛ PyPI (рдпрд╛ рдПрдХ рдХрд╕реНрдЯрдо рдЗрдВрдбреЗрдХреНрд╕) рдкрд░ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреИрд╕реЗ рдмреИрдХреЗрдВрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рд╕реНрдкрд╖реНрдЯ рдерд╛ - рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдзрд╛рд░рдгрд╛ рдереА рдХрд┐ рд╡реЗ рдкреАрдИрдкреА 517 рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдПрдХ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХрдорд╛рдВрдб (рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ setup.py bdist_wheel рдпрд╛ flit build , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ) рдХрд╛ рд╣реИред рдПрдХ рдкреАрдИрдкреА 517 рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдПрдХ рдХрджрдо рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ рдкрд╛рдЗрдк рдореЗрдВ PEP 518 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ (рдпрджрд┐ рдПрдХ рдмреИрдХрдб рдХреЛ рдПрдХ sdist рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЦреБрдж рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рдВрдЯрд╛ рдмрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рднреА рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдмреИрдХреЗрдВрдб рдХреЛ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХреЗрдВ ) рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ PyPI рд╕реЗ рдмреИрдХрдПрдВрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред

tl; рдбреЙ; рдЙрд╕ рд╕рдордп рдХреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП рдореИрдВ рдпрд╣ рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреА рдмреЗрд╣рддрд░ рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкреАрдИрдкреА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ - рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЪрд░реНрдЪрд╛ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреАрдИрдкреА рдХреЛ рдХрдм рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрдд (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ) рдХреА рдУрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рдореИрдВ рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдЪрд░реНрдЪрд╛ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рд╕рд╡рд╛рд▓ рдкрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ (28 рдЬреБрд▓рд╛рдИ, 2017):
https://mail.python.org/pipermail/distutils-sig/2017-July/031109.html
https://www.mail-archive.com/[email protected]/msg26624.html

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдИрдореЗрд▓-- рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ PEP 517 рдХреЗ рд╕рд╛рде рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рддрдирд╛ рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рдпрд╣ PEP 517 рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрд░реНрдердкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдмрд╕ рдпрд╣ рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ sys.path рдкрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди-рдкрде рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдиреБрд╡рд░реНрддреА PEP рдХрд░реЗрдВред

рдЕрдЧрд░ рдореИрдВ рдЕрдВрддрд┐рдо рдлреИрд╕рд▓рд╛ рд╕реБрдирд╛рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдХрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :-)

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдИрдореЗрд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдХрд┐рдо рдХрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрдо рд╕реЗ рдХрдо 29 рдЕрдЧрд╕реНрдд рдХреЛ рдЖрдЧреЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдирд┐рдХ рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕реЛрд░реНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА _out_ of sys.path рдЫреЛрдбрд╝рдиреЗ рдкрд░ рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ:
https://mail.python.org/pipermail/distutils-sig/2017-August/031413.html
(рдПрдХ-рдПрдХ рдХрд░рдХреЗ, рд▓реЛрдЧ рдирдерд╛рдирд┐рдПрд▓ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдХрд╛рдпрд▓ рд╣реЛ рд░рд╣реЗ рдереЗред)

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЗрд╕реА рдИрдореЗрд▓ рдореЗрдВ, рдирд┐рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╣рддрд╛ рд╣реИ :)

  1. рдпрджрд┐ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕реЗрдЯрдЕрдк рд╕реЗрдЯрдЕрдк рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ

рдпрд╣рд╛рдБ рдИрдореЗрд▓ рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╣реИ:

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ "рдбреЗрдореЛрдВрдбреНрд╕ рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ sys.path рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреИрдХрдПрдВрдб рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рд╣реИ ", рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣рд╛рдБ рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЕрдкрдиреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░реЗрдВрдЧреЗред рдЕрдирдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХреГрдд рдПрдкреАрдЖрдИ рдХрд╛ рд░реЛрд▓рдЖрдЙрдЯред

рдореБрдЭреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдРрд╕реЗ рдИрдореЗрд▓ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдИрдореЗрд▓ рдирд╣реАрдВ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЛ рдлрдБрд╕рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @cjerdonekред рд╕рдорд╕реНрдпрд╛ рдХреА рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕рдордЭ рдХреЛ рдмрддрд╛рддреЗ рд╣реБрдП:

  1. рдмрд╣реБрдд рд╕рд╛рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ setup.py рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдирддреА рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ sys.path рдЬрдм рд╡реЗ рдЪрд▓рддреА рд╣реИрдВ, рдЕрдЬреАрдм рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЦреБрдж рдХреЛ рд╕реНрдерд╛рдкрд┐рдд-рд╕рдордп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреА рд╣реИрдВ
  2. PEP 517 рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ sys.path рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ)
  3. pip 19.0 pyproject.toml build-system build-system рдЕрдиреБрднрд╛рдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ setuptools рдмреИрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
  4. setuptools PEP 517 рдмреИрдХрдПрдВрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ sys.path рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдКрдкрд░ рдмрд┐рдВрджреБ 1 рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╡рд╛рдВрдЫрдиреАрдп рднрд╡рд┐рд╖реНрдп рдХрд╛ рд▓рдХреНрд╖реНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)
  5. рджреЛ рдЕрдВрддрд░рд┐рдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬрдмрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ: pip рдХреЛ 19.0 рд╕реЗ рдХрдо рдкрд░ рдкрд┐рди рдХрд░рдирд╛, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ --no-use-pep517 рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓реЛрдЧ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ pip рдЙрдиреНрдирдпрди рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ " pyproject.toml build-system рдЕрдиреБрднрд╛рдЧ" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд┐рд░ setup.py рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП sys.path рдлрд┐рд░ рд╕реЗред рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ:

  1. рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pip рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рдордиреЗ рдХреЗ рдЕрдВрдд рдХреЛ рдирд┐рд░реНрднрд░ рдмрдирд╛рдиреЗ рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рджреГрд╢реНрдп рдПрдХ рд╣реА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
  2. setuptools PEP 517 рдХрд╛ рдмреИрдХрдПрдВрдб рдХрд░реЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pyproject.toml build-system рд╕реЗрдХреНрд╢рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ, рдФрд░ setup.py рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ sys.path рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЕрдиреБрднрд╛рдЧ рдФрд░ рдкрде рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЛрдиреЛрдВ рдЧрд╛рдпрдм рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдирдпрд╛ pip рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ "рдирд╣реАрдВ build-system рдЕрдиреБрднрд╛рдЧ" рдорд╛рдорд▓реЗ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ, рдХрд┐рд╕реА рднреА рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдХреЛрдиреЛрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ 3 рдХрджрдо рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░реВрдВрдЧрд╛:

  1. рдПрдХ рдирдпрд╛ pip рд░рд┐рд▓реАрдЬрд╝ (19.0.1?) рдХрд░реЗрдВ рдЬреЛ рдЕрдм " build-system рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд sys.path рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреВрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. рдПрдХ рдирдпрд╛ setuptools рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВ рдЬреЛ sys.path рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдпрджрд┐ рд╕рд╛рдордиреЗ рд╡рд╛рд▓рд╛ рдЕрдВрдд рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  3. рдмрд╛рдж рдХреЗ pip рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рдиреЛ build-system рдПрдВрдЯреНрд░реА" рдорд╛рдорд▓реЗ рдХреЛ рдмрджрд▓реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп setuptools рд▓рд┐рдП рдПрдХ рд╕рдЦреНрдд рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдХрд░реЗрдВред

рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ setuptools PEP 517 рдмреИрдХрдПрдВрдб setup.py рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рд╣реА" рдЬрдЧрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ pip рдЯреНрд╡рд┐рдЯрд┐рдВрдЧ рдХрд░рдирд╛ рдирд┐рдХрдЯ рдЕрд╡рдзрд┐ рдореЗрдВ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдмрд╣реБрдд рд╕рд░рд▓ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдЬрдмрдХрд┐ рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ pypa / setuptools # 1652 рдореЗрдВ build_meta_legacy рдмреИрдХреЗрдВрдб рдмрдирд╛рдпрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЕрдЧрд░ pip рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ setuptools.build_meta_legacy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рд╡рд┐рд░рд╛рд╕рдд рд╢рд┐рдо" рдмреИрдХрдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЖрд░рд╛рдо рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред setuptools ред рдореИрдВ рдореБрдЦреНрдп setuptools PEP 517 рдмреИрдХреЗрдВрдб рдореЗрдВ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ " python setup.py install рдЗрдореНрдпреВрд▓реЗрд╢рди" рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдореИрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рд╕реЗрдЯрдЯреЙрдкреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдЯреАрдмреАрдПрдЪ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реИ рдЬрдм python setup.py bdist_wheel рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди pip wheel (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╡реЗ рдЧреИрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмреИрдХрдПрдВрдб рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИрдВ)ред

рдФрдЪрд┐рддреНрдп рдХреНрдпрд╛ рд╣реИ?

рдФрдЪрд┐рддреНрдп рдХреНрдпрд╛ рд╣реИ?

рдореЗрд░реА рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреА рдпреЛрдЬрдирд╛ рдкреАрдИрдкреА 517 рдлреНрд░рдВрдЯреЗрдВрдб рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди (рдЕрдиреНрдп рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП) рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдЖрд╣реНрд╡рд╛рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ setup.py рд╕рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рдЖрд╣реНрд╡рд╛рди рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ "рд╕рднреА рдЕрд▓рдЧ-рдерд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг" рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ setuptools рдХрдорд╛рдВрдб рдХреЗ рдЗрдиреЛрд╡реЗрд╢рдВрд╕ рдХреЛ python setup.py рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕реА рд╡рдЬрд╣ рд╕реЗ PEP 517 рдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯреЗрдВрдбреНрд╕ рдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрд╕рдореЗрдВ рдмрд┐рд▓реНрдб рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдХреЛ рддреЛрдбрд╝рдиреЗ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдирд╛ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреА рд╡реИрдз рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреА рд╕реЗрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ sys.path рдХрд╛ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреА рд╣реИред

рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ PEP 517 рдХрднреА рднреА рдПрдХ рдбрд┐рдЬрд╛рдЗрди рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдерд╛ рдХрд┐ рд╕рднреА рдмрд┐рд▓реНрдб рдЯреВрд▓ рдПрдХреНрд╕реЗрд╕ рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, flit рдХреЗ рдкрд╛рд╕ flit build рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдЧрд░реВрдХ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВ рдЬрд╣рд╛рдВ рдкреАрдИрдкреА 517 рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрдкрдХрд░рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╕реНрд╡рдпрдВ рдмреИрдХрдПрдВрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдорд╛рдорд▓реЗ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдирдХреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреАрдИрдкреА рд╣реБрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ) рдЬреИрд╕реЗ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реНрд╕ рдФрд░ рдЗрди-рдкреНрд▓реЗрд╕ рдмрд┐рд▓реНрдб (рдкрд┐рдЫрд▓реЗ рдкреБрд░реНрдЬрд╝реЛрдВ рд╕реЗ рдЖрд░реНрдЯреЗрдХреНрдЯреИрдХреНрдЯреНрд╕ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛) рдореМрдЬреВрдж рд╣реИрдВред

рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдХрд┐ рд╕рднреА рдЙрдкрдХрд░рдг "рдмрд┐рд▓реНрдб рдПрд╕рдбреАрдбрд┐рд╕реНрдЯ" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ "рдмрд┐рд▓реНрдб рд╡реНрд╣реАрд▓" рдХрд╛рдлреА рдХрдард┐рди рдерд╛ рдХрд┐ рдореИрдВ рдЬрд▓реНрдж рд╣реА рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ред

рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ PEP 517 рдХрднреА рднреА рдПрдХ рдбрд┐рдЬрд╛рдЗрди рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдерд╛ рдХрд┐ рд╕рднреА рдмрд┐рд▓реНрдб рдЯреВрд▓ рдПрдХреНрд╕реЗрд╕ рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рд╣реИред рдореЗрд░реЗ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдкреАрдИрдкреА 518 рднреА рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рдерд╛ setup.py рдЖрджреЗрд╢, рдФрд░ рдЙрди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд╛рдЧреГрдд рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рд╕реЗ рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ setup.py рд╕рдм рдкрд░ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдирдХ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ flit рдХреЛ subcommands рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП PEP рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрд╣ рдЕрдЪреНрдЫрд╛ред рдЧрд▓рддрдлрд╣рдореА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

@ncoghlan рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрдХреНрд░рдордг рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ @cjerdonek рдЦреЛрджрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

рдХреНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рдЪрд░рдг 1 рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ?

рдирд╣реАрдВред рд╣рдо рд╕реАрдзреЗ рд╡рд░реНрддрдорд╛рди рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реА рд╕рдВрдХреНрд░рдордг рдпреЛрдЬрдирд╛ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ setuptools рд╕рд╛рдЗрдб @pganssle рдХреА рд╕рдорд░реНрдкрд┐рдд рд╕рдВрдХреНрд░рдордгрдХрд╛рд▓реАрди рдмреИрдХреЗрдВрдб рдЙрд╕ рдореЛрд░реНрдЪреЗ рдкрд░ рдЖрд╢рд╛рдЬрдирдХ рджрд┐рдЦрддреА рд╣реИ, рдореИрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЙрд╕ рдмрджрд▓рд╛рд╡ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ pip рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ PEP 517 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд┐ рд╕рд╛рдордиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛ред

рдХреНрдпреЛрдВрдХрд┐ рдмреИрдХрдПрдВрдб рдПрдХ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддрд┐рд╢реЛрдзрд┐рдд pep517 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ) рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо sys.path рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ рдПрдХ рдмреИрдХреЗрдВрдб рд╣реБрдХред рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ PYTHONPATH рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА PYTHONPATH рд╕реЗрдЯ рд╣реИ, рдФрд░ рдЕрд▓рдЧрд╛рд╡ рдХреЛрдб рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдкрд╛рдЗрдк рдореЗрдВ sys.path рд╕реЗрдЯ рдХрд░рдирд╛, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧреИрд░-рддреБрдЪреНрдЫред рдореБрдЭреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╣реБрдд рдХрдо рдПрдХ рдкреИрдЪ рд▓рд┐рдЦреЗрдВ (рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рдХреНрд╕реНрдб рд╕реЗрдЯрдкреНрдЯреВрд▓ рдмреИрдХреЗрдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИред

рдореЗрд░реА рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдпреЛрдЬрдирд╛ PEP 517 рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдордВрдЧрд▓рд╛рдЪрд░рдг рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди (рдЕрдиреНрдп рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдЖрд╣рд░рдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рдЖрд╣реНрд╡рд╛рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рд╣реИред

@pgansle ouchред рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ setup.py рдХреЛ рдорд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "рд▓рдЪреАрд▓рд╛рдкрди" рджрд░реНрдж рдФрд░ рдЯреВрдЯрдиреЗ рдХрд╛ рдПрдХ рдЕрдВрддрд╣реАрди рд╕реНрд░реЛрдд рд╣реИред рдкрд╛рдЗрдерди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рд╕рд╛рде setup.py рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдореИрдВ setup.py package.json setup.py рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рд▓рд┐рдП Python рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВред

рдХрдо рд╕реЗ рдХрдо рддрдм рдореИрдВ ==1.x рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@techtonik рдХреГрдкрдпрд╛ рдЪрд▓реЗ рдЬрд╛рдУред рдЖрдкрдХреЗ рдЧреИрд░-рд░рдЪрдирд╛рддреНрдордХ рдпреЛрдЧрджрд╛рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореИрдВ рдПрдХ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реВрдВ

# 6210 рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдКрдкрд░ рд╕реЗ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ pip рд╕реНрддрд░ рдкрд░ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛: рдЪреБрдиреМрддреА рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ sys.path[0] рд░реВрдк рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред pyproject.toml рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд╣рд╛рдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд╡рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред

рд╡реЗ рдкреНрд░рдореБрдЦ рд╡рд╛рд╕реНрддреБ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ (рдкреНрд░рдердо рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдмреИрдХрдПрдВрдб рдирд╛рдо рдкрд░ рдПрдХ pip._implicit. рдЙрдкрд╕рд░реНрдЧ, рдФрд░ рдмрд╛рдж рдХреЗ рд▓рд┐рдП PEP517_SYS_PATH_0 env var) рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╢реЛрдзреА pep517 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИред setuptools рдореЗрдВ рдЙрдЪрд┐рдд рдлрд┐рдХреНрд╕ рддреИрдпрд╛рд░ рди рд╣реЛ рдЬрд╛рдПред

рдореЗрд░реА рд╕рдВрдХреНрд░рдордг рдпреЛрдЬрдирд╛ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реЗрдЯрдкреВрд▓реЛрдВ рдХреА рдУрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреНрд░рдордг рддрдВрддреНрд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА- @pganssle рдХреЗ рд╕рдорд░реНрдкрд┐рдд рд╕рдВрдХреНрд░рдордгрдХрд╛рд▓реАрди рдмреИрдХреЗрдВрдб рдЙрд╕ рдореЛрд░реНрдЪреЗ рдкрд░ рдЖрд╢рд╛рдЬрдирдХ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдбрд┐рд╕реНрдЯреБрдЯрд┐рд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рджреЛ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ ASAP рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдБ рдПрдХ рдареАрдХ рд╣реЛ рд░рд╣реА рд╣реИ
  2. рд╕рд╣реА рд╕рдВрдХреНрд░рдордг рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ "pyproject.toml рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЖрдкрдХреЛ PEP 517 рдореЗрдВ рдЖрддрд╛ рд╣реИ" рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдХреНрд░рдордг рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ setuptools рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ API рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рд╣реИ рдФрд░ pip рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрд┐рдЫрдбрд╝реЗ-рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рджреЗрд░реА рд╣реЛрдЧреА, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред pip рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╣рдо setuptools рд▓рд┐рдП рдЖрдЧреЗ рдХреА рд░рд╛рд╣ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдореВрд▓ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд PyInstaller==3.4 рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз # 6210 рдФрд░ # 6212 рджреЛрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ # 6212 рд╡рд┐рдлрд▓рддрд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдпрд╛ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдкреВрд░реНрд╡-рд╡рд┐рдореЛрдЪрди рдореЗрдВ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЖрдЧреЗ рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЬрдмрдХрд┐ рдореБрдЭреЗ рдЕрдм # 6210 рдкрд░ рднрд░реЛрд╕рд╛ рд╣реИ - рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рднрдпрд╛рдирдХ рд╕рдВрдЧрддрддрд╛ рд╣реИрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП pip рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --no-cache рдЙрд╕ assert рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред --cache-dir рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рдлрд▓ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рджрд┐рдпрд╛ рдЧрдпрд╛: https://github.com/pypa/pip/pull/6212#issuecomment -458166386

(рдореИрдВ рдиреАрдВрдж рдФрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП ~ 18 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреЛ # 6210 рдпрд╛ # 6212 рдЬреЛ рднреА рдЗрд╕ рдмреАрдЪ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореИрдВрдиреЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖рдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред PRs рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж


рдореЙрдбрд░реЗрд╢рди рдиреЛрдЯ: рдореИрдВрдиреЗ рдЖрдЧреЗ рднреА рдЧреИрд░-рдЙрддреНрдкрд╛рджрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ (рдФрд░ рдЙрди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ) рдХреЛ "рдСрдл рдЯреЙрдкрд┐рдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд┐рдкрд╛рдпрд╛ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдореЙрдбрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреА рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реЗрдВ рдпрд╛ рдореБрдЭреЗ рдИрдореЗрд▓ рдкрд░ рдкрд┐рдВрдЧ рдХрд░реЗрдВ; рдпрд╣ рдзрд╛рдЧрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЙрдбрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред

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

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо pep517 рдСрдкреНрдЯ-рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕рдХреА рдШреЛрд╖рдгрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рдереА рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рддреЛрдбрд╝ рджреЗрдВрдЧреЗ _ рдпрджрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА in_ ( PyInstaller , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА pep517 рдХреЛ рдСрдкреНрдЯ-рдЗрди рдШреЛрд╖рд┐рдд рдХрд░рддреА рд╣реИ, _and_ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рдЬреЛ sys.path рдкрд░ рдорд┐рд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИрдВ, рдкрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рдХреЛрдИ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдкрд╖реНрдЯ рд╣реИ) рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЕрднреА рднреА рдЕрдЪрд╛рдирдХ рдЯреВрдЯ рдЧрдпрд╛ред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЗрдЯрдЯреЙрдкреНрд╕ рдореЗрдВ cwd рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдЬрдм рддрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ pep517 рдФрд░ рдкрд╛рдЗрдк 19 рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрдЯреМрддреА рдХреА рдЧрдИ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдкрд┐рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдЪрд╛рдирдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрднрд╡ рдкрд░ рдЗрди рдлреИрд╕рд▓реЛрдВ рдХреАред рдЗрд╕ рдЪрд░реНрдЪрд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╛рдЗрдк + рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ pep517 рдмрд┐рд▓реНрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рди рд╣реЛрдВред

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

рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдореЗрдВ рд╡рд┐рдлрд▓ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдореИрдВ --no-use-pep517 рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдФрд╕рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣рдЬ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдпрд╣ рднреА рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: pganssle, cjerdonek, pfmoore, pradyunsg, ncoghlan, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЬреЛ рдЗрд╕ рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ, рдХреЗ рд▓рд┐рдП рднреА рдмрдбрд╝рд╛ рдзрдиреНрдпрд╡рд╛рдж

рдЬрдм рд╣рдо PEP 517 рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдпрд╣ рдерд╛ рдХрд┐ рдмреИрдХрдПрдВрдбреНрд╕ рдХреЛ PyPI (рдпрд╛ рдПрдХ рдХрд╕реНрдЯрдо рдЗрдВрдбреЗрдХреНрд╕) рдкрд░ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдмреИрдХрдПрдВрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛ - рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдзрд╛рд░рдгрд╛ рдпрд╣ рдереА рдХрд┐ рд╡реЗ PEP 517 рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрдорд╛рдВрдб (setup.py bdist_wheel рдпрд╛ рдлрд╝реНрд▓рд┐рдЯ рдмрд┐рд▓реНрдб, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдПрдХ рдкреАрдИрдкреА 517 рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдПрдХ рдХрджрдо рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ рдкрд╛рдЗрдк рдореЗрдВ PEP 518 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ (рдпрджрд┐ рдПрдХ рдмреИрдХрдб рдХреЛ рдПрдХ sdist рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЦреБрдж рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рдВрдЯрд╛ рдмрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рднреА рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдмреИрдХреЗрдВрдб рдХреЛ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХреЗрдВ ) рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ PyPI рд╕реЗ рдмреИрдХрдПрдВрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред

рдмрд╕ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд╕рд░реНрдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдирдпрд╛ setuptools.build_meta_legacy рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреАрдИрдкреА 517 рдмреИрдХреЗрдВрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдкреАрдИрдкреА 517 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ setuptools рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ @ benoit- рдкрд┐рдпрд░реЗ рдкреАрдкрд╛ / рд╕реЗрдЯрдкреНрдЯреВрд▓ # 1644 рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ, рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП pip install --no-binary :all: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ setuptools рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рдкреАрдИрдкреА 517 рдмреИрдХреЗрдВрдб рдкреНрд░рджрд╛рддрд╛)ред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реВрддреНрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реВрддреНрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рдЙрд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреВрдВрдЧрд╛ред рдореЗрд░реА рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ --no-binary :all: рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рд╣реИрдВ (рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рдорд╛рди, рдЬреЛ рдХреЗрд╡рд▓ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрд╕рдбреАрдПрд╕ рдХреЛ рдирд╣реАрдВ) рдФрд░ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ --no-binary :all: рдЖрдЧреЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдореЗрдВ digressions рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ --no-binary :all: рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреИрдХреЗрдВрдбреНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдХрд╣реАрдВ рднреА рдЙрддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ред рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА --no-binary :all: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рдиреА рд╕реЗ --no-use-pep517 рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдирдпрд╛ PR # 6229 рдЬреЛ:

  1. рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреНрд╕ @pganssle рдиреЗ рдкреАрдИрдкреА 517 рдореЗрдВ "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ" рдХрд┐рд╕реА рднреА pyproject.toml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП "рдСрдкреНрдЯ- рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pyproject.toml рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ build-system рд╕реЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдВрддрд░рд┐рдо рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рд░рд┐рд▓реАрдЬ рдореЗрдВ)
  2. setup.py рд╕реЗ рдПрдХ рдЖрд╕рдиреНрди рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реБрдП 3 рд╕рдорд░реНрдкрд┐рдд рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ

рдореИрдВ рдЙрд╕ рдПрдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрдиреНрдп 2 рдкреАрдЖрд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдиреНрдпреВрдирддрдо рдлрд┐рдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЗрдВ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ # 6210 рдпрд╛ # 6212 рдЬреИрд╕реЗ рдПрдХ рдирдП рд╕реЗрдЯрдкреВрд▓ рд░рд┐рд▓реАрдЬ рдХреА рддрд░рд╣ рдХрд┐рд╕реА рднреА рднрдпрд╛рдирдХ рд╣реИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рддреЛ рд╡рд╣ setuptools.build_meta_legacy рдХрд╣рд╛рдБ рдЫреЛрдбрд╝рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдЕрдм рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ "рдЖрдпрд╛рдд рдЖрд╕рдиреНрди рдкреИрдХреЗрдЬ" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ pyproject.toml рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд┐ рдЙрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд┐рдирд╛ рдЖрд╕рдиреНрди рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд╛рдЗрдк 19.X рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╣рдореЗрдВ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ), рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд┐рдкреНрд░реИрд╢рди (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛) рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реВрдЪрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЖрд░реЛрдкреА (рдлрд┐рд░ рд╕реЗ) рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛, рдирдП рдкреАрдЖрд░ рдФрд░ рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2: рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ setuptools.build_meta_legacy рдкреНрд░рд╕реНрддрд╛рд╡ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ, рдЗрд╕ рддрд░рд╣ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рд╣рдореЗрдВ рдЕрдм рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рджреАрд░реНрдШрдХрд╛рд▓реАрди рдпреЛрдЬрдирд╛ рд╣реИ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╕рд░ рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдирд┐рдВрджрд╛ рдЕрд╡рдзрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ ...

@pfmoore рдирд╣реАрдВ, рдпрд╣ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣реА рд╡рд╛рдкрд╕ # 6163 рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢рд╛рдпрдж рдПрдХ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реБрдП setuptools рдХрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ setuptools.build_meta_legacy )ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл # 6212 рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реЗ build_meta_legacy рдЪрд░реНрдЪрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдерд╛ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдИрдкреА рдХреЗ рд▓рд┐рдП 517 рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ build-system.build-backend рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдирд╣реАрдВ build-system рд╕рдм рдкрд░ рд╣реИ, рдФрд░ рдЙрд╕ рдХреЗ рдмреАрдЪ рдЕрдм рдФрд░ 19.1 рд░рд┐рд╣рд╛рдИ, setuptools рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ build_meta_legacy рдФрд░ pip рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ 19.1 рдореЗрдВ, рд╢рд╛рдпрдж pip setuptools.build_meta_legacy рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдкрде рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╣рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП рдиреНрдпреВрдирддрдо рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЧрд╛ред

рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреАрдИрдкреА 517 рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдмрд┐рд▓реНрдб-рд╕рд┐рд╕реНрдЯрдо.рдмрд┐рд▓реНрдб-рдмреИрдХрдПрдВрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛

... рдЬреЛ рдХреЗрд╡рд▓ рдХрдордмреИрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ use_pep517 = False рд╕реЗрдЯ рдХрд░рдХреЗ рд╣реА рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕реЗ has_pyproject рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреЛ рдЕрднреА рд╣рдо рдХрд░рддреЗ рд╣реИрдВред

19.1 рдореЗрдВ, рдЕрдЧрд░ рдкрд╛рдЗрдк рдореЗрдВ рд╕реЗрдЯрдкреВрд▓рдЯрд╕рд▓рд╛рдЗрдлрд▓рд╛рдЗрди_рдореЗрдЯрд╛_рдПрд▓реНрдЧреЗрд╕реА рдирд╣реАрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдкрде рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд╣рдо рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдмреИрдХрдПрдВрдб рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реЗрдЯрдЯреЙрдкреНрд╕ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмреИрдХрдПрдВрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдпрд╛ рдпрджрд┐ рд╡реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреЛрд╖реА рдард╣рд░рд╛рдПрдВ;;)

рдиреЛрдЯ: use_pep517 = False рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрдпрд╛ рд╣реИ # 6229 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдпрд╣ PEP 518 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред

  1. " build-system.requires рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдореВрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ use_pep517 = True рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ред
  2. рдПрдХ рд▓рд╛рдкрддрд╛ [build-system] рддрд╛рд▓рд┐рдХрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ pyproject.toml рдмрд╕ рдореЗрдВ рджреБрдХрд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ [tools] , рдЯреЗрдмрд▓ рддрд╛рдХрд┐ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреА рд╣реИ use_pep517 = False рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЛ рдПрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред
  3. рд╡рд╣ "рдЦрд╛рд▓реА [build-system] рддрд╛рд▓рд┐рдХрд╛" рдХреЗрд╕ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдХреНрд╕рд░ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ (рдХреЛрдИ рднреА requires рдпрд╛ build-backend рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ build-system рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдХреНрдпреЛрдВ рдЬрд╛рдПрдЧрд╛? build-backend ?), рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдерд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреАрдИрдкреА 518 рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрдЬрд╛рдп рдПрдХ рджреВрд╕рд░реА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдорд╛рд░реНрдХрд░ рдХреЛ рдЬреЛрдбрд╝рдХрд░ред

рдЕрдиреНрдп рджрд┐рд╢рд╛ рдореЗрдВ 3 рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд▓рд╛рдЗрди рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

use_pep517 = build_system is not None

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп:

use_pep517 = build_system is not None and build_system.get('requires', None)

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЧреИрд░-рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП PEP 517 рдмрд┐рд▓реНрдб рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде 4 рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдЬреЛрдбрд╝рдирд╛ рднреА рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЦрд╛рд▓реА рдФрд░ рдЧреИрд░-рд░рд┐рдХреНрдд build-system.requires рдлрд╝реАрд▓реНрдб рдЕрдм рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗ)ред

рдпрд╣рд╛рдБ рдмрд┐рди рдмреБрд▓рд╛рдП рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рд╕рдм sys.path рдкрд░ cwd рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рддрд░реАрдХреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рдЬреЛ рдХрд╛рдо рдХрд░рддреЗ рдереЗ, рдЬреЛ рдХрд╛рдлреА рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд▓рдЧрддрд╛ рд╣реИ рдПрдХ UX рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдкрд╛рд╕ [build-system] рдЦрдВрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдФрд░ _also_ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЯреВрдЯреЗ рд░рд╣реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@techalchemy рд╣рд╛рдБ, рдореЗрдВ рдореВрд▓ рдзрд╛рд░рдгрд╛ pip рдерд╛ рдХрд┐ setuptools.build_meta рдПрдХ рд╕реЗ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ sys.path рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдордВрдЧрд▓рд╛рдЪрд░рдг setup.py рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдЧрд▓рдд рд╕рд╛рдмрд┐рдд рд╣реБрдЖред рдПрдХ рдмрд╛рд░ setuptools рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╡рд╛рд▓реА setuptools.build_meta_legacy рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ https://github.com/pypa/setuptools/pull/1652 рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрдм # 6212 рдкреВрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛ рд╢рдмреНрдж рдХрд╛ рд╕рдВрдХрд▓реНрдкред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд░реНрддрдорд╛рди рдИрдЯреАрдП рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ sys.path рдХреЗ рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдкрд░ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП pip рд╕рдВрдХрд▓реНрдкреЛрдВ рдХреА рдЦреЛрдЬ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рдкреАрдИрдкреА 517 рджреЗрд╢реА рдирд╣реАрдВ рд╣реИрдВ" тАЭред

# 6229 рдореЗрдВ рдореИрдВрдиреЗ " рдкреАрдИрдПрд╕рдкреА 517 рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ" рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП pip 19: рдореЗрдВ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИрдВред build-system.requires рдЕрдм build-system.build-backend рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП --no-use-pep517 PEP 518 рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдб рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкреВрд░реНрд╡рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ)ред

# 6210 рдореЗрдВ, рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ pep517 sys.path[0] setuptools.build_meta_legacy setutpools рд░рд┐рд▓реАрдЬред рдпрд╣ рд╣рдорд╛рд░реЗ рдЗрдЪреНрдЫрд┐рдд рддрд░реАрдХреЗ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - build-system.requires рдЕрднреА рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реИ, рдФрд░ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ sys.path[0] рдЬрдм setup.py рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ https://discuss.python.org/t/pep-517-backend-bootstrapping/789/29?u=ncoghlan рдФрд░ @takluyver рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ https://github.com/ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред --no-binary :all: рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ

AWOL RM рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдЪреАрдЬреЗрдВ рдРрд╕реА рд╣реБрдИрдВ рдЬрд┐рдирдХрд╛ рдореБрдЭреЗ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рдерд╛ред

рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдкреВрд▓-рд╕рд╛рдЗрдб рдлрд┐рдХреНрд╕ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди # 6210 рдореЗрд░реЗ рд╕рд╛рде рднреА рдардВрдбрд╛ рд╣реИ - рд╢реЙрд░реНрдЯ рдЯрд░реНрдо рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВред

рдореИрдВ @techalchemy рдФрд░ @pradyunsg рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрдкреВрд▓рд╕-рд╕рд╛рдЗрдб рдлрд┐рдХреНрд╕ рдпрд╣рд╛рдВ рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдЬрдмрдХрд┐ рдореИрдВ рдкрд╛рдЗрдк рдХреЗ рднреАрддрд░ рдПрдХ рддреЗрдЬреА рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдРрд╕реЗ рд╕рдордп рдореЗрдВ _build_meta_legacy рд╕рд╛рде setuptools рдХреА рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпрд╛ setuptools рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рднреА рд╕реНрдкрд╖реНрдЯ рдкрд░ рдХреНрдпреЛрдВ (setuptools рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рдкрд┐рдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) setuptools рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдореИрдВ рдПрдХ рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рдХреЗ рдкрд╛рдЗрдк-рд╕рд╛рдЗрдб рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдХрдм рд╕реЗрдЯ-рдлрд┐рдХреНрд╕ рдлрд┐рдХреНрд╕ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ!

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

**Collecting pyinstaller==3.4
  Using cached https://files.pythonhosted.org/packages/
a0cc/PyInstaller-3.4.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  Complete output from command "c:\program files (x86)\
gram files (x86)\microsoft visual studio\shared\python3
requires_for_build_wheel C:\Users\ASUS\AppData\Local\Te
  Traceback (most recent call last):
    File "c:\program files (x86)\microsoft visual studi
process.py", line 207, in <module>
      main()
    File "c:\program files (x86)\microsoft visual studi
process.py", line 197, in main
      json_out['return_val'] = hook(**hook_input['kwarg
    File "c:\program files (x86)\microsoft visual studi
process.py", line 54, in get_requires_for_build_wheel
      return hook(config_settings)
    File "C:\Users\ASUS\AppData\Local\Temp\pip-build-en
, line 115, in get_requires_for_build_wheel
      return _get_build_requires(config_settings, requi
    File "C:\Users\ASUS\AppData\Local\Temp\pip-build-en
, line 101, in _get_build_requires
      _run_setup()
    File "C:\Users\ASUS\AppData\Local\Temp\pip-build-en
, line 85, in _run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 20, in <module>
      from PyInstaller import __version__ as version, H
  ModuleNotFoundError: No module named 'PyInstaller'**

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ? рдпрд╛ рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рд╕рдмрдХреЛ рд╢реБрдХреНрд░реАрдпрд╛!

@ jce94 , рдЕрдм <19 рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк <рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@altendky рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ pipenv рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред $ # $ $ $ $ $ $ # $ 2 $ # $ $ # $ 3 $ # $ $ $ $ pip 18.1 Pipfile pipenv рдорд┐рд▓рддреЗ рд░рд╣реЗрдВред рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ 18.1 рдкрд░ рдкрд╛рдЗрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдкрд┐рдкреЗрдирд╡ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд┐рдкреЗрдирд╡ рдирд╡реАрдирддрдо рдкрд╛рдЗрдк рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдЧрд╛ рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рд╣реЛ ... рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ?

@altendky рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдХрд╡рд┐рддрд╛ рдХреЗ рд▓рд┐рдП рднреА) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рджреЛрдиреЛрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЯреВрдЯреА рд╣реБрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдП рд╣реИрдВ

рдФрд░ рднреА рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдРрдкрд╡реЙрд░ рдХреА рдиреМрдХрд░реА рдлрд┐рд░ рд╕реЗ рдХреА рд╣реИ, рдкрд╣рд▓рд╛ рдкрд╛рд╕ рд╣реБрдЖ, рджреВрд╕рд░рд╛ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╕рдЦреНрддреА рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ

рдпрджрд┐ рдХрд┐рд╕реА рдХреА рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рдХреА рд╕реЛрдЪ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рдпрд╛ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдлрд┐рдХреНрд╕ рддреИрдпрд╛рд░ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЬрд▓реНрдж рд╣реА рдмрдЧ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред

рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг, 40.8.0 рдЕрдм build_meta:__legacy__ рдмреИрдХреЗрдВрдб рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж! рдФрд░ рдпрд╣ рдХреБрдЫ рд╣рдо PyInstaller рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рд╡реЛ рдереЗ
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдХрд╛рдлреА рджреБрдЦреА ... рдХреЛрдИ рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╛ рдкреАрдИрдкреА рдореИрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╕рд╛рде?

Tue, Feb 5, 2019, 10:24 рдкреЙрд▓ рдЧрдиреНрд╕рд▓ < рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдкрд░ рд▓рд┐рдЦрд╛:

рд╕реЗрдЯрдкреВрд▓ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг, рд╕рдВрд╕реНрдХрд░рдг 40.8.0 рдЕрдм рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИ
build_meta: __ рд╡рд┐рд░рд╛рд╕рдд__ рдмреИрдХреЗрдВрдбред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pip/issues/6163#issuecomment-460747909 , рдпрд╛ рдореНрдпреВрдЯ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADtXZjnOfu56IYR6VEKK4yowMg3XdcFEks5vKcxBgaJpZM4nNvmP
ред

@AlmogCohen рдирд╣реАрдВ, рдпрд╣ рдРрд╕реА рдЬрд┐рд╕рдХрд╛ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ PEP 517 рдлреНрд░рдВрдЯ-рдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдЕрдЧрд▓рд╛ рдХрджрдо pip рд▓рд┐рдП build_meta:__legacy__ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХреЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдирдИ рд░рд┐рд▓реАрдЬ рдкрд░ рдХреЛрдИ рдИрдЯреАрдП рдЬреЛ рдлрд┐рдХреНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдЧрд╛?

рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВред :)

рдкрд┐рди рдХрд┐рдП рдЧрдП рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦреЗрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк 19.0.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдкрд╛рдЗрдк рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде pyinstaller рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ --no-use-pep517 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреА

pip install pyinstaller --no-cache-dir --no-use-pep517
Collecting pyinstaller
  Downloading https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz (3.5MB)
     |тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 3.5MB 273kB/s
  Installing build dependencies ... done
    ERROR: Complete output from command python setup.py egg_info:
    ERROR: Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Raffaele\AppData\Local\Temp\pip-install-5e9w2p2c\pyinstaller\setup.py", line 20, in <module>
        from PyInstaller import __version__ as version, HOMEPATH, PLATFORM
    ModuleNotFoundError: No module named 'PyInstaller'
    ----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in C:\Users\Raffaele\AppData\Local\Temp\pip-install-5e9w2p2c\pyinstaller\

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

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

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

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

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

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

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

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