Please do not remove `setup.py install` as it is needed for distribution packagers
See original GitHub issueAs requested in https://github.com/pypa/setuptools/issues/510#issuecomment-623153201 I’m opening a new issue. What I’d like for is that setup.py install --root=...
(or a minimal equivalent) remains working as a ‘low-level’ install command for distribution packagers.
Installing packages straight from setuptools (much like distutils) has important advantages for us:
- The
--root=
install mode fits just fine the packaging logic we have. We need a command that puts files in a directory we can use. We build distribution packages, and would really like to avoid building a wheel just to have to repack it into plain package. - We need minimal dependencies, and certainly have to avoid circular dependencies. While for tools like pip it might be acceptable to employ dirty bootstrap hacks, we really prefer not to have to rely on that to get the initial install working.
- There are literally thousands of packages calling
setup.py install
one way or another. At least in Gentoo the majority of them is covered by our Python framework and could be easily swapped to use another install method but I can imagine others are not so lucky. It’s not fair to ask people to change all that. - There are many packages that customize the
install
command, including some high profile ones. If the command is removed, they would all become broken, wouldn’t they?
All that considered, please keep setup.py build
and setup.py install
commands for us. I don’t care if they output huge warnings, require magical environment variables to be run but they need to stay as backend commands.
Issue Analytics
- State:
- Created 3 years ago
- Reactions:12
- Comments:38 (33 by maintainers)
Top Results From Across the Web
python setup.py uninstall - Stack Overflow
So I don't see the reason why they use setup.py instead of writing requirements.txt file. The requirement file can be used to install...
Read more >Why you shouldn't invoke setup.py directly - Paul Ganssle
This does not mean that setuptools itself is deprecated, or that using setup.py to configure your package builds is going to be removed....
Read more >Packaging and distributing projects
First, make sure you have already fulfilled the requirements for installing packages. Install “twine” 1: Unix/macOS. python3 -m pip install twine.
Read more >setuptools 3.0.2 - PyPI
Easily download, build, install, upgrade, and uninstall Python packages.
Read more >Python: Creating a pip installable package
pip is a package management system, specifically designed for installing Python ... This is essentially trying to install a version that does not...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Well, it looks like we could, we would just need to create a second python package just to reimplement main() around
Pep517HookCaller
without calling pip first.This is quite awkward, not least because it’s an explosion of tools and Arch Linux dislikes an explosion of custom distro tools (we devoutly avoid build recipe macros, templates, and inferred hooks with the rationale that they’re unreadable and turn the act of packaging into some secret invite-only club of people who actually understand the endless layers). It would be best if pep517 could just… not call pip when it knows all the
Distribution
s are there. The point of this reinvention of the python packaging landscape was to make things less coupled together, right? So it seems silly to couple pep517 to pip for any reason.Eh, things are getting even better. I’ve spent significant time trying to figure out how
data_files
work with wheels. Unless I’m mistaken, this is done completely outside wheel spec, and it was deprecated anyway. So if I write a useful user-facing Python program, I’m not supposed to install.desktop
files for it, or a working manpage, right?