lincolnloop / python-package-manager-shootout

Benchmarking various Python package managers
https://lincolnloop.github.io/python-package-manager-shootout/
MIT License
44 stars 10 forks source link

Use pip-sync #3

Closed atugushev closed 2 years ago

atugushev commented 2 years ago

venv creation process is unrelated to pip-tools' benchmark. Since pip-compile is already installed in user space we can just run pip-sync which could improve pip-tools' benchmark results.

ipmb commented 2 years ago

I can understand that virtualenv creation is outside the scope of pip-tools, but it seems unfair to not include it when that's what all the other tools are doing. I'd prefer to keep it 1:1 with the other tools which are all maintaining package isolation.

I would guess that most developers using pip-tools are using it within a virtualenv. Docker may be the exception there, but that isn't exactly what we're testing here.

ipmb commented 2 years ago

If we were to use pip-sync with the virtualenv, what is the recommended way to do that? Can the user install be used to manage packages inside the virtualenv? Or should the tool be installed directly inside it?

atugushev commented 2 years ago

Fair enough. In that case, IMO the toolchain should be called venv+pip-tools.

atugushev commented 2 years ago

If we were to use pip-sync with the virtualenv, what is the recommended way to do that? Can the user install be used to manage packages inside the virtualenv? Or should the tool be installed directly inside it?

There are two options avaiable:

  1. install pip-tools inside user's venv and run pip-sync in that venv.

  2. specify Python executable via --python-executable:

    pip-sync --python-executable=pip-tools/.venv/bin/python
ipmb commented 2 years ago

Thanks for the tips! I went with the latter option.

The site will gets updated based on scheduled runs which happen every 6 hours, so you should see the changes there in a bit.