pdm: BuildError module not found 'pbr' (editable install of project itself, pdm 1.8.0)
- I have searched the issue tracker and believe that this is not a duplicate.
Steps to reproduce
Logs:
% pdm install -v
All packages are synced to date, nothing to do.
Installing the project as an editable package...
Preparing isolated env for PEP 517 build...
Collecting setuptools
Using cached setuptools-57.4.0-py3-none-any.whl (819 kB)
Installing collected packages: setuptools
Successfully installed setuptools-57.4.0
running develop
running egg_info
writing src/failprint.egg-info/PKG-INFO
writing dependency_links to src/failprint.egg-info/dependency_links.txt
writing entry points to src/failprint.egg-info/entry_points.txt
writing requirements to src/failprint.egg-info/requires.txt
writing top-level names to src/failprint.egg-info/top_level.txt
Traceback (most recent call last):
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/_editable_install.py", line 24, in <module>
exec(compile(code, __file__, "exec"))
File "/media/data/dev/python/failprint/setup.py", line 54, in <module>
setup(**setup_kwargs)
File "/tmp/pdm-build-env-z5ymx0jf-overlay/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pdm-build-env-z5ymx0jf-overlay/lib/python3.6/site-packages/setuptools/command/develop.py", line 34, in run
self.install_for_development()
File "/tmp/pdm-build-env-z5ymx0jf-overlay/lib/python3.6/site-packages/setuptools/command/develop.py", line 132, in install_for_development
self.run_command('egg_info')
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pdm-build-env-z5ymx0jf-overlay/lib/python3.6/site-packages/setuptools/command/egg_info.py", line 291, in run
writer = ep.resolve()
File "/tmp/pdm-build-env-z5ymx0jf-overlay/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2456, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'pbr'
Install failprint 0.8.0+d20210816 failed
Traceback (most recent call last):
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/builders/base.py", line 78, in log_subprocessor
subprocess.check_call(
File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.9.5/lib/python3.9/subprocess.py", line 373, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/bin/python', '-u', '/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/_editable_install.py', '/media/data/dev/python/failprint/setup.py', '/media/data/dev/python/failprint/__pypackages__/3.6', '/media/data/dev/python/failprint/__pypackages__/3.6/lib', '/media/data/dev/python/failprint/__pypackages__/3.6/bin']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pawamoy/.local/bin/pdm", line 8, in <module>
sys.exit(main())
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/core.py", line 195, in main
return Core().main(args)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/core.py", line 153, in main
raise cast(Exception, err).with_traceback(traceback)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/core.py", line 148, in main
f(options.project, options)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/cli/commands/install.py", line 44, in handle
actions.do_sync(
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/cli/actions.py", line 168, in do_sync
handler.synchronize()
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/synchronizers.py", line 349, in synchronize
self.install_candidate(self_key)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/synchronizers.py", line 167, in install_candidate
self.manager.install(can)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/manager.py", line 46, in install
installer(candidate)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/installers.py", line 114, in install_editable
builder.subprocess_runner(install_args, candidate.source_dir)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/builders/base.py", line 212, in subprocess_runner
return log_subprocessor(cmd, cwd, extra_environ=env)
File "/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/builders/base.py", line 86, in log_subprocessor
raise BuildError(f"Call command {cmd} return non-zero status.")
pdm.exceptions.BuildError: Call command ['/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/bin/python', '-u', '/home/pawamoy/.local/pipx/venvs/pdm/lib/python3.9/site-packages/pdm/installers/_editable_install.py', '/media/data/dev/python/failprint/setup.py', '/media/data/dev/python/failprint/__pypackages__/3.6', '/media/data/dev/python/failprint/__pypackages__/3.6/lib', '/media/data/dev/python/failprint/__pypackages__/3.6/bin'] return non-zero status.
pyproject.toml:
[build-system]
requires = ["pdm-pep517"]
build-backend = "pdm.pep517.api"
[project]
name = "failprint"
version = {use_scm = true}
description = "Run a command, print its output only if it fails."
authors = [{name = "Timothée Mazzucotelli", email = "pawamoy@pm.me"}]
license = {file = "LICENSE"}
readme = "README.md"
requires-python = ">=3.6"
keywords = ["cli", "failure", "output", "runner"]
dynamic = ["version", "classifiers"]
classifiers = ["Development Status :: 4 - Beta"]
dependencies = [
"ansimarkup~=1.4",
"jinja2>=2.11, <4",
"ptyprocess~=0.6; sys_platform != 'win32'",
]
[project.scripts]
failprint = "failprint.cli:main"
[tool.pdm]
package-dir = "src"
[tool.pdm.dev-dependencies]
duty = ["duty~=0.7"]
docs = [
"mkdocs~=1.1; python_version >= '3.7'",
"mkdocs-coverage~=0.2; python_version >= '3.7'",
"mkdocs-gen-files~=0.3; python_version >= '3.7'",
"mkdocs-literate-nav~=0.4; python_version >= '3.7'",
"mkdocs-material~=7.1; python_version >= '3.7'",
"mkdocstrings~=0.15; python_version >= '3.7'",
"toml~=0.10; python_version >= '3.7'",
]
format = [
"autoflake~=1.4",
"black~=20.8b1",
"isort~=5.8",
]
maintain = [
"git-changelog~=0.4",
]
quality = [
"darglint~=1.7",
"flake8-bandit~=2.1",
"flake8-black~=0.2",
"flake8-bugbear~=21.3",
"flake8-builtins~=1.5",
"flake8-comprehensions~=3.4",
"flake8-docstrings~=1.6",
"flake8-pytest-style~=1.4",
"flake8-string-format~=0.3",
"flake8-tidy-imports~=4.2",
"flake8-variables-names~=0.0",
"pep8-naming~=0.11",
"wps-light~=0.15",
]
tests = [
"pytest~=6.2",
"pytest-cov~=2.11",
"pytest-randomly~=3.6",
"pytest-sugar~=0.9",
"pytest-xdist~=2.2",
"hypothesis~=6.13",
]
typing = ["mypy~=0.812"]
Actual behavior
The installation of the project itself in editable mode seems to fail. Apparently it misses a pbr module/package. Same result with higher Python versions.
Note that I have enabled the feature.install_cache option. I also tried installing pbr in the environments of the different Python interpreters I’m using, without success.
Expected behavior
No errors 😊
Environment Information
% pdm info && pdm info --env
PDM version: 1.8.0
Python Interpreter: /home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.6.13/bin/python (3.6)
Project Root: /media/data/dev/python/failprint
Project Packages: /media/data/dev/python/failprint/__pypackages__/3.6
{
"implementation_name": "cpython",
"implementation_version": "3.6.13",
"os_name": "posix",
"platform_machine": "x86_64",
"platform_release": "5.13.10-arch1-1",
"platform_system": "Linux",
"platform_version": "#1 SMP PREEMPT Thu, 12 Aug 2021 21:59:14 +0000",
"python_full_version": "3.6.13",
"platform_python_implementation": "CPython",
"python_version": "3.6",
"sys_platform": "linux"
}
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 16 (11 by maintainers)
The package’s path must be present in
sys.pathorsetup.py developwill refuse to install. It was solved this in a bit hacky way which should be cleaned after switching to PEP 660. The install cache somewhat exposed this issue.Hm, i reproduced it. The real issue is the editable build shouldn’t see the dependencies under
__pypackages__