У меня есть два проекта: MyPyLib и MyApp; Как следует из вымышленного названия, MyApp нуждается в наборе инструментов, содержащихся в MyLib. В качестве системы сборки я использую setuptools.
Пакет MyPyLib с pyproject.toml:
Команда сборки python -m build работает правильно, генерирует файл колеса, и этот файл правильно устанавливается в виртуальную среду MyApp через pip install /path/to/wheel/MyPyLibXXXX.whl
Однако, поскольку мне нужно установить его как редактируемый, когда я запустите (в MyApp venv) pip install -e /path/to/mypylib (это корневой каталог, содержащий pyproject.toml), я получил эту ошибку:
Obtaining file:///home/my-user/workspace/mypylib
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [32 lines of output]
Traceback (most recent call last):
File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in
main()
File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
return hook(config_settings)
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 147, in get_requires_for_build_wheel
return self._get_build_requires(
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 128, in _get_build_requires
self.run_setup()
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 143, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 13, in
setup(
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 143, in setup
_install_setup_requires(attrs)
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 131, in _install_setup_requires
dist = distutils.core.Distribution(dict(
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 447, in __init__
_Distribution.__init__(self, {
File "/usr/lib/python3.8/distutils/dist.py", line 292, in __init__
self.finalize_options()
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 740, in finalize_options
ep.load()(self)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2444, in load
self.require(*args, **kwargs)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2467, in require
items = working_set.resolve(reqs, env, installer, extras=self.extras)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 792, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (importlib-metadata 1.5.0 (/usr/lib/python3/dist-packages), Requirement.parse('importlib-metadata>=3.6; python_version < "3.10"'))
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Я не совсем понимаю, что там происходит.
Изменить 1: include-system-site-packages = true была проблема, но...
Редактируемая установка работает нормально, если include-system-site-packages имеет значение false в виртуальной среде MyApp. До сих пор не могу понять, что происходит
У меня есть два проекта: MyPyLib и MyApp; Как следует из вымышленного названия, MyApp нуждается в наборе инструментов, содержащихся в MyLib. В качестве системы сборки я использую setuptools. Пакет MyPyLib с pyproject.toml: [code][build-system] requires = [ "setuptools >= 42", # At least v42 of setuptools required! "versioningit", ] build-backend = "setuptools.build_meta"
[project] name = "MyPyLib" authors = [...] description = "MyPyLib Description" readme = "README.md" license = { file="LICENSE" } requires-python = ">=3.8" classifiers = [ "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] dependencies = [ "StrEnum" ] dynamic = ["version"]
[tool.versioningit.format] distance = "{base_version}" dirty = "{base_version}" distance-dirty = "{base_version}" [/code] [b]Команда сборки python -m build работает правильно, генерирует файл колеса, и этот файл правильно устанавливается в виртуальную среду MyApp через pip install /path/to/wheel/MyPyLibXXXX.whl[/b] Однако, поскольку мне нужно установить его как [b]редактируемый[/b], когда я запустите (в MyApp venv) pip install -e /path/to/mypylib (это корневой каталог, содержащий pyproject.toml), я получил эту ошибку: [code]Obtaining file:///home/my-user/workspace/mypylib Installing build dependencies ... done Checking if build backend supports build_editable ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [32 lines of output] Traceback (most recent call last): File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in main() File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/home/my-user/workspace/virtualenvs/MyApp/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel return hook(config_settings) File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 147, in get_requires_for_build_wheel return self._get_build_requires( File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 128, in _get_build_requires self.run_setup() File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 143, in run_setup exec(compile(code, __file__, 'exec'), locals()) File "setup.py", line 13, in setup( File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 143, in setup _install_setup_requires(attrs) File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 131, in _install_setup_requires dist = distutils.core.Distribution(dict( File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 447, in __init__ _Distribution.__init__(self, { File "/usr/lib/python3.8/distutils/dist.py", line 292, in __init__ self.finalize_options() File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 740, in finalize_options ep.load()(self) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2444, in load self.require(*args, **kwargs) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2467, in require items = working_set.resolve(reqs, env, installer, extras=self.extras) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 792, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.VersionConflict: (importlib-metadata 1.5.0 (/usr/lib/python3/dist-packages), Requirement.parse('importlib-metadata>=3.6; python_version < "3.10"')) [end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip. [/code] Я не совсем понимаю, что там происходит. Изменить 1: include-system-site-packages = true была проблема, но... Редактируемая установка работает нормально, если include-system-site-packages имеет значение false в виртуальной среде MyApp. До сих пор не могу понять, что происходит