You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pup is a single script that transparently wraps around two powerful Rust-based package managers, Pixi and uv. It seems to me like they complement each other, and belong together. Think of puppy as a (thus far) missing recipe for using Pixi and uv together (or just as their fur baby, if you're so inclined).
Puppy was a long plane ride idea around the following design criteria for practical and modern python ecosystem:
base python should be:
not system python
non-invasive, isolated from any existing python, easy to setup and tear down so that people aren't apprehensive about trying them
easy to swap versions (up or down as needed)
bring along tools needed for other languages
environments should be
super easy, oneliner-easy, to create, use, modify, freeze, take down
reside in the same folder as the base python rather than all over
easily ported to other machines or containers
the whole thing
should work on Linux and Windows
should support Conda and PyPI
should be easy to recreate without relying on memory or Bash history
As you can see, Pixi handles almost all crucial steps here - huge thanks for all your work!
Essentially, it's a recipe for a two-tiered environment. The outer tier, managed by Pixi, is tied to one specific python executable. The inner environments are managed by uv. If you need a different version of python (e.g. #833) , you could overwrite the inner-layer python with pup or pixi, but I suspect this can bite you in the ass later, so better to start over in a different folder.
So far it's a bash script, I'll try to port it to Powershell soon.
From zero python to multi-kernel Jupyter in 7 commands:
./pup
pup py3.12 jupyter
pup fetch . httpx
pup fetch viz altair seaborn
pup kernel . pup3.11-.
pup kernel viz pup3.11-viz
pup play
From zero python to running Gradio app:
./pup
pup py3.11
pup fetch huggingface gradio
pup kernel huggingface pup3.11-hf
# edit huggingface/app.py
pup play # via pixi run task huggingface/.venv/bin/gradio app.py
If you'd like to try it out and offer feedback, it would be very much appreciated!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Puppy wants to be your new best friend in the Python world!
https://github.com/liquidcarbon/puppy
Pup is a single script that transparently wraps around two powerful Rust-based package managers, Pixi and uv. It seems to me like they complement each other, and belong together. Think of puppy as a (thus far) missing recipe for using Pixi and uv together (or just as their fur baby, if you're so inclined).
Puppy was a long plane ride idea around the following design criteria for practical and modern python ecosystem:
As you can see, Pixi handles almost all crucial steps here - huge thanks for all your work!
Essentially, it's a recipe for a two-tiered environment. The outer tier, managed by Pixi, is tied to one specific python executable. The inner environments are managed by uv. If you need a different version of python (e.g. #833) , you could overwrite the inner-layer python with
pup
orpixi
, but I suspect this can bite you in the ass later, so better to start over in a different folder.So far it's a bash script, I'll try to port it to Powershell soon.
From zero python to multi-kernel Jupyter in 7 commands:
From zero python to running Gradio app:
If you'd like to try it out and offer feedback, it would be very much appreciated!
Beta Was this translation helpful? Give feedback.
All reactions