uv is quite awesome.
Python
Welcome to the Python community on the programming.dev Lemmy instance!
📅 Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django 💬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
🐍 Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
💓 Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
✨ Python Ecosystem:
🌌 Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- Pythörhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
This looks like a reimplementation of pipx.
Correct me if I'm wrong, but I don't think pipx can allow you to just put a shebang at the top of a script that automatically installs all the required dependencies the first time you run it?
What I really like about this, unless I'm missing something, is that it basically lets you create Python scripts that run in exactly the same way as shell scripts. I work with a lot of people who have pretty good basic Linux knowledge, but are completely at a loss when it comes to python specific stuff. Being able to send them a script that they can just +x and run sounds like a huge hassle saver.
Nope, pipx definitely can't do that, but the idea that running your yourscript.py --help
will automatically trigger the downloading of dependencies and installing them somewhere isn't really appealing. I'm sure I'm not the only person who's got uv configured to install the virtualenv in the local .venv
folder rather than buried into my home dir, so this would come with the added surprise that every time I invoke the script, I'd get a new set of dependencies installed wherever I happen to be.
I mean, it's neat that you can do this, but as a user I wouldn't appreciate the surprise behaviour. pipx isn't perfect, but at least it lets you manage things like updates.
I’m sure I’m not the only person who’s got uv configured to install the virtualenv in the local .venv folder
That's the default for projects. Script is a different run mode.
every time I invoke the script, I’d get a new set of dependencies installed wherever I happen to be.
Does that happen though? uv
uses the cache location for these script dependencies, not your usual venv one. Where you call it from is not a factor.
uv actually does have a reimplementation of pipx, via uv tool
or uvx
: https://docs.astral.sh/uv/concepts/tools/#tools
the concept in the OP is different; it's an implementation of pep722 https://peps.python.org/pep-0722/
Or, you could package it as a Pex.
- it would just need a compatible Python version
- no additionalional packaging tools need to be installed by your users
- all of the dependencies packaged together once. as they were built and tested against.
- doesn’t need installing. Doesn’t install anything. Just run it.
- doesn’t depend on pypi being accessible.