[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: can pip be made using local Debian packages for any dependencies



Hey.


On Sun, Feb 12, 2023 at 7:31 PM Donald Stufft <donald@stufft.io> wrote:
>
> I'm pretty sure that most if not all debian packages already ship the required information for pip to see them as installed, and if they are installed and they satisfy the dependency constraints that pip has for those projects, then they'll be used.


Are you sure? I have a test project with a pyproject.toml that contains:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

i.e. no version requirement on setuptools.

Also:
$ dpkg -l python3-setuptools
...
ii  python3-setuptools 66.1.1-1     all          Python3 Distutils Enhancements

Yet when I do e.g.:
$ pip install --editable .
Defaulting to user installation because normal site-packages is not writeable
Obtaining file:///home/test/example
  Installing build dependencies ... error
  error: subprocess-exited-with-error

  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [2 lines of output]
      ERROR: Could not find a version that satisfies the requirement
setuptools (from versions: none)
      ERROR: No matching distribution found for setuptools
      [end of output]

  note: This error originates from a subprocess, and is likely not a
problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.

Now the particular error probably comes from my pip.conf, because I
set --no-index, at least when I try to install some package that is
not installed as Debian package, e.g.:
$ pip install acme
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement acme
(from versions: none)
ERROR: No matching distribution found for acme

But I need something like that to actually disable any remote downloads.

Perhaps you're right however, cause when I run with an empty pip.conf,
it does e.g. download files to:
~/.local/lib/python3.11/site-packages/natsort*
(which I set as a project dependency), but it doesn't create something
like that for setuptools.

On the other hand:
I've just installed Debian's python3-natsort, rm -rf ~/.local/ and did
pip install --editable . again (without pip.conf), and it still seems
to download and install natsort to ~/.local .
So that doesn't look, as if it would recognize the one from Debian.

But even if that would actually work, why does it need the index at
https://pypi.org/simple to use the local packages from Debian?


> The question of having pip automatically install a debian package instead of using PyPI basically comes down to a few problems:


That might be nice for some users, but I personally wouldn't even need
or want that. It should perhaps rather just tell which Debian packages
need to be installed.


Thanks,
Philippe.


Reply to: