-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Closed
Labels
type: bugA confirmed bug or unintended behaviorA confirmed bug or unintended behavior
Description
Description
Running pip install "git+file:///home/user/repository/.git#subdirectory=library" works.
But having similiar dependency in pyproject.toml doesn't work. Running pip install . while having following toml file in the same folder gives following error.
[project]
name = "application"
version = "1.0.0"
description = "Simple application"
requires-python = ">=3.11"
dependencies = [
"library @ git+file:///home/user/repository/.git#subdirectory=library",
]
Error message
Processing /home/user/repository/application
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [52 lines of output]
configuration error: `project.dependencies[{data__dependencies_x}]` must be pep508
DESCRIPTION:
Project dependency specification according to PEP 508
GIVEN VALUE:
"library @ git+file:///home/user/repository/.git#subdirectory=library"
OFFENDING RULE: 'format'
DEFINITION:
{
"$id": "#/definitions/dependency",
"title": "Dependency",
"type": "string",
"format": "pep508"
}
Traceback (most recent call last):
File "/home/user/repository/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/home/user/repository/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/repository/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 485, in run_setup
self).run_setup(setup_script=setup_script)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 159, in setup
dist.parse_config_files()
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 867, in parse_config_files
pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 62, in apply_configuration
config = read_configuration(filepath, True, ignore_option_errors, dist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 126, in read_configuration
validate(subset, filepath)
File "/tmp/pip-build-env-m1nfldav/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 51, in validate
raise ValueError(f"{error}\n{summary}") from None
ValueError: invalid pyproject.toml config: `project.dependencies[{data__dependencies_x}]`.
configuration error: `project.dependencies[{data__dependencies_x}]` must be pep508
[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.
Expected behavior
I'd expect to see successfull installation:
Processing /home/user/repository/application
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Processing /home/user/repository/library
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: application, library
Building wheel for application (pyproject.toml) ... done
Created wheel for application: filename=application-1.0.0-py3-none-any.whl size=3824 sha256=54e3fe17b500d6ef6d39a9b4685e503c8c8f769353c37902ef5764f15150a3d6
Stored in directory: /tmp/pip-ephem-wheel-cache-dszxuqcb/wheels/eb/66/2c/8a0575464550cec1aacc721d7ba15d9af503daece8e3ddc84a
Building wheel for library (pyproject.toml) ... done
Created wheel for library: filename=library-1.0.0-py3-none-any.whl size=1366 sha256=d40643f2f583ed109cd87d416a5e863d9855fe4b1f6c3db1f6fd5e416683620b
Stored in directory: /tmp/pip-ephem-wheel-cache-dszxuqcb/wheels/c3/ab/3a/9d1bd4288b05710825742a964449a1b2a4c35794f98f146b96
Successfully built application library
Installing collected packages: library, application
Successfully installed application-1.0.0 library-1.0.0
pip version
pip 22.0.2
Python version
3.11
OS
Ubuntu 22.04.1 LTS
How to Reproduce
- Clone my repo
git clone [email protected]:JoakimJoensuu/pyproject.toml-example.git - In
application/pyproject.tomlchange"library @ git+file:///absolute/path/to/this/repo/.git#subdirectory=library"to point wherever you cloned the repo. - cd to
application-folder python3.11 -m venv .venvsource .venv/bin/activatepip install .
Output
Processing /home/user/Downloads/pyproject.toml-example/application
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [52 lines of output]
configuration error: `project.dependencies[{data__dependencies_x}]` must be pep508
DESCRIPTION:
Project dependency specification according to PEP 508
GIVEN VALUE:
"library @ git+file:///home/user/Downloads/pyproject.toml-example/.git#subdirectory=library"
OFFENDING RULE: 'format'
DEFINITION:
{
"$id": "#/definitions/dependency",
"title": "Dependency",
"type": "string",
"format": "pep508"
}
Traceback (most recent call last):
File "/home/user/Downloads/pyproject.toml-example/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/home/user/Downloads/pyproject.toml-example/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/Downloads/pyproject.toml-example/application/.venv/lib/python3.11/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 485, in run_setup
self).run_setup(setup_script=setup_script)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 159, in setup
dist.parse_config_files()
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 867, in parse_config_files
pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 62, in apply_configuration
config = read_configuration(filepath, True, ignore_option_errors, dist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 126, in read_configuration
validate(subset, filepath)
File "/tmp/pip-build-env-3y3cdtli/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 51, in validate
raise ValueError(f"{error}\n{summary}") from None
ValueError: invalid pyproject.toml config: `project.dependencies[{data__dependencies_x}]`.
configuration error: `project.dependencies[{data__dependencies_x}]` must be pep508
[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 of Conduct
- I agree to follow the PSF Code of Conduct.
Metadata
Metadata
Assignees
Labels
type: bugA confirmed bug or unintended behaviorA confirmed bug or unintended behavior