I kept forgetting the video was not testing mechanical keyboard instead it was a walkthrough for a complete Python project lifecycle from dev to packaging to release paired with ruff. Been using ruff for over a year. Will be trying it to migrate my python applications based on Django. Congrats on being part of Astral. Thanks for making this wonderful tool Armin 😊
I'm confused as to why you have to run sync after every package install. This will definitely be a pain point for developers who are used to having installed modules from the venv available immediately.
Does rye implement anything to assist with non-python library dependancies? I think that's only remaining hurdle for python package managers as people still struggle with handling non-python dependancies needed by numpy, lxml etc.
The guy spends an entire lifetime worth of experience to solve one of the most frustrating problems known to the coding man; and the audience is more interested in the "plonk plonk plonk" - priorities 🍷
I've been using poetry for quite some time and would say I really like it. What I like about your new project that is not considered in poetry is managing Python version, I've had some problem with that before. What I don't like which is minor thing that why venv is created in the project directory in poetry venv created in cache/venv/some_venv which quite handy, when venv created in project directory it just annoying to see in VS Code file tree. I also don't like the file .python-version I think we can manage python version pyproject.toml and get rid of the file. More file and more folder just create more confusions. I also don't like the fact we need to `rye sync` all time. If we got a video that compare similar projects with rye that would be nice. Thanks for the project
Hello Armin, thank you very much for the great video. However, I could not resist but ask you which keyboard and switches did you use in this video? I swear was watching this video and I shifted my attention for a second to reply a text, then the keyboard sound came on and I froze and shouted holy sh*t!
I'm looking to get rid of Poetry. It's been a PITA for the 35+ repos I have to manage. This just jumped to my #1 application to try. I also know of PDM, Hatch, uv, Conda, pipenv, Pixi and pip. Will do a Hackathon this quarter where I'll check all these out. Will hopefully not forget to post the results here.
definitely it's missing cargo for pythonistas, very appreciate for you work! it would be cool to run tests (apparently with pytest), build doc and measure benchmarks. Waiting for better packaging resolution and more widely pyproject.toml adoption in the ecosystem.
This is very intentionally not supported. I would like to understand what the motivation for this is however, so that I can maybe address the issues with the co-located virtualenv in different ways.
@@ArminRonacher My main motivation is this: I keep my projects in my Dropbox folder, thus they are synced on all my machines. But a virtual env. is usually huge and reproducible, thus it makes no sense to keep it in Dropbox.
@@jabuci the next version of rye will automatically mark virtualenvs in a way that they are not synched to dropbox. See github.com/mitsuhiko/rye/pull/589
rye sync should be automatic, me thinks. There are 3 or 4 times you forgot to sync first, in the video, and had to go back and do it. Which leads me to believe it’s a mistake that almost everyone will make
There is an open feature request for it. Once the installation process is no longer that slow it will definitely become an option. Today it’s too slow if you want to add multiple dependencies in one go.
I've been using Pyenv for years now and all my projects as well as my entire global environment (~/.python-version) is managed by Pyenv. However your video makes me want to switch to Rye. Is there an easy way to migrate everything from pyenv to rye somehow?
I have a question. You have old mac with Python 2.7 but with newest openssl version that fits new versions of Python ? If it installed Python 3.12 on old machine, how it was done in context of that openssl dependency ?
Awesome work 🥰 Rye looks very promising to be a standard way to use python in the most manageable way. I just wonder if I can replace conda with rye to manage virtual env without creating projects or workspaces. I mean I got my job done with only simple create env, activate/deactivate, install... because I rarely create python module. So it would be very cool if rye can do that.
Ugh, reminds me of RVM for ruby. Ruby and Python need to follow .NET 's project structure, where this functionality is baked in, the project points to the installed version of ruby or python, instead of magic entire environment switching.
But... Is the installed Python version the one you need? What if you have projects in 3.6 and some others in 3.12? How do you separate your installed dependencies?
As the video shows, you don't need to install Rust, Rye just happens to be written in Rust but is distributed as a pre-compiled binary. That being said, you make installing Rust sound like some nightmare when it's really one of the nicest languages to install and manage
@@IndigoCurnick I have and continue to make a point to avoid all Rust software. Just my preference. Additionally, I think Hatch solves all the package management issues, in pure Python, and does so in a more elegant way than something nasty and complicated like Rust.
@@HaydenDoingThings could you explain how the choice of programming language affects your use of the software? Python itself is written in C and it's quite common these days that you pull in Rust based dependencies quite quickly (eg: the well known cryptography library is a good example of this). Hatch also is partially written in Rust so your own example is already not applying.
@@HaydenDoingThings There's Rust in Firefox and soon in Chromium. There's Rust in Windows and soon in the Linux kernel. There's Rust in a lot of very common libraries in Python. I think your goal of avoiding Rust is futile. Instead of a blanket ban on Rust software. Try to evaluate each example by itself. What specifically do you find nasty or complicated about using Rye?
The second I heard the quality of his keycaps I knew this would be good.
Can someone identify them, based on the sound?
@cheiron77 yes. Someone can
@@cheiron77 shot in the dark but they sound like yellows, lubed, at least that's what mine sounded like. at least a linear switch
sooooo creamy
Keychron V3 with Banana switches. My man has taste!
Before that he had a Filco Tenkeyless (Blue switches).
Great project. Just looked at the Rust source code. You have put an immense amount of work into this - all credit to you!
I just subscribed. nice to see Armin (Mitsuhiko) again. This is changing the Python Landscape!
Thank you for all the hard work. Helped me get up and running with django project in 2 mins after I sat for 4 hours trying to do it manually.
I kept forgetting the video was not testing mechanical keyboard instead it was a walkthrough for a complete Python project lifecycle from dev to packaging to release paired with ruff.
Been using ruff for over a year. Will be trying it to migrate my python applications based on Django. Congrats on being part of Astral. Thanks for making this wonderful tool Armin 😊
Awesome. Hope this gets BIG.
Legendary, this is gonna be the new norm for sure
This is amazing. Thanks Armin.
rye is a cargo for python, what could be better? :)
what keyboard are u using holy fk
So far this looks like what we all have been waiting for in python project management. before Rye it could be more than a big pain in the ***
awesome! familiar with the cargo like, if the "rye sync" can be automatic call by "rye run" will be nicer!!!
I'm confused as to why you have to run sync after every package install. This will definitely be a pain point for developers who are used to having installed modules from the venv available immediately.
what's the difference between rye and uv?
Does rye implement anything to assist with non-python library dependancies? I think that's only remaining hurdle for python package managers as people still struggle with handling non-python dependancies needed by numpy, lxml etc.
He bungled the flask quickstart :D !
Can there be "autosync" ? That way i dont have to type "rye sync" each and every time
Looks very promising!
When you add a dependency does it also check for conflicts like poetry does?
It's all good and well bro, but you have to say what keeb, switches and caps you're using, cuz the sound is on fleek
Gateron Jupiter Banana :)
The guy spends an entire lifetime worth of experience to solve one of the most frustrating problems known to the coding man; and the audience is more interested in the "plonk plonk plonk" - priorities 🍷
Nice work! Thanks for the demo.
I've been using poetry for quite some time and would say I really like it. What I like about your new project that is not considered in poetry is managing Python version, I've had some problem with that before. What I don't like which is minor thing that why venv is created in the project directory in poetry venv created in cache/venv/some_venv which quite handy, when venv created in project directory it just annoying to see in VS Code file tree. I also don't like the file .python-version I think we can manage python version pyproject.toml and get rid of the file. More file and more folder just create more confusions. I also don't like the fact we need to `rye sync` all time.
If we got a video that compare similar projects with rye that would be nice.
Thanks for the project
How can we use this with frameworks like FastAPI, django
Hello Armin, thank you very much for the great video. However, I could not resist but ask you which keyboard and switches did you use in this video? I swear was watching this video and I shifted my attention for a second to reply a text, then the keyboard sound came on and I froze and shouted holy sh*t!
I'm looking to get rid of Poetry. It's been a PITA for the 35+ repos I have to manage. This just jumped to my #1 application to try. I also know of PDM, Hatch, uv, Conda, pipenv, Pixi and pip. Will do a Hackathon this quarter where I'll check all these out. Will hopefully not forget to post the results here.
Doing some pre-work - looks like `rye add` already runs `rye sync` to sync your `requirements-dev.lock` and `requirements.lock` files. Very nice! :D
How this works in pair with docker?
e.g. I want to use rye locally, but docker container wants requirements.txt, right?
definitely it's missing cargo for pythonistas, very appreciate for you work! it would be cool to run tests (apparently with pytest), build doc and measure benchmarks. Waiting for better packaging resolution and more widely pyproject.toml adoption in the ecosystem.
My god, that’s a good sounding keyboard
what font does he use in the console?
Hi Armin, thanks for the informative video. Can you please tell me the name of this Firefox theme?
It's the default theme as far as I can tell
Is it possible to place the virt. env. outside of the project folder? I like to keep them in the folder ~/.virtualenvs .
This is very intentionally not supported. I would like to understand what the motivation for this is however, so that I can maybe address the issues with the co-located virtualenv in different ways.
@@ArminRonacher My main motivation is this: I keep my projects in my Dropbox folder, thus they are synced on all my machines. But a virtual env. is usually huge and reproducible, thus it makes no sense to keep it in Dropbox.
@@jabuci the next version of rye will automatically mark virtualenvs in a way that they are not synched to dropbox. See github.com/mitsuhiko/rye/pull/589
@@ArminRonacher Thank you! It will very useful for me.
Wow so it's like cargo for python, fantastic
amazing! please post more! ... keyboard name /link ?
It’s a keychron q3 max with banana switches.
rye sync should be automatic, me thinks. There are 3 or 4 times you forgot to sync first, in the video, and had to go back and do it. Which leads me to believe it’s a mistake that almost everyone will make
There is an open feature request for it. Once the installation process is no longer that slow it will definitely become an option. Today it’s too slow if you want to add multiple dependencies in one go.
uv for installation doesn't help? 😉
Super exciting project! Thanks!
PS. love your shell theme, how do I make mine look like yours?
does rye create executables as well?
I've been using Pyenv for years now and all my projects as well as my entire global environment (~/.python-version) is managed by Pyenv. However your video makes me want to switch to Rye. Is there an easy way to migrate everything from pyenv to rye somehow?
Oh! Das sieht super toll aus!
I love using rye!
THANK YOU VERY MUCH
I have a question. You have old mac with Python 2.7 but with newest openssl version that fits new versions of Python ? If it installed Python 3.12 on old machine, how it was done in context of that openssl dependency ?
good question, main issues with python installation is usually 3rd party deps, also on windows
Awesome work 🥰 Rye looks very promising to be a standard way to use python in the most manageable way.
I just wonder if I can replace conda with rye to manage virtual env without creating projects or workspaces. I mean I got my job done with only simple create env, activate/deactivate, install... because I rarely create python module. So it would be very cool if rye can do that.
Is possible, just tested,: once a project is created with rye init command , switching between directories (via cd ) works as environment swapping.
insert xkcd comic about charging standards.
docker?
Okay now i want to learn vim
Let's go ruby influence through rust
1. du bist a viech, heast.
2. will you support uv? is it not kind of similar?
3. the scripts are cool, I use justfiles atm.
2. already supported it seems!
Ugh, reminds me of RVM for ruby. Ruby and Python need to follow .NET 's project structure, where this functionality is baked in, the project points to the installed version of ruby or python, instead of magic entire environment switching.
But... Is the installed Python version the one you need? What if you have projects in 3.6 and some others in 3.12? How do you separate your installed dependencies?
@@AlvaroGonzalez_Andor 1010100
We can’t hear you because of your keyboard.
Another tool that replicates a tiny portion of Nix and renders itself obsolete from get going.
I regret after installing this
Absolute last thing I want on a fresh system is to have to install Rust. Instant dealbreaker for me.
You don't need to install Rust. Rye is already compiled as an executable like any other compiled app.
As the video shows, you don't need to install Rust, Rye just happens to be written in Rust but is distributed as a pre-compiled binary. That being said, you make installing Rust sound like some nightmare when it's really one of the nicest languages to install and manage
@@IndigoCurnick I have and continue to make a point to avoid all Rust software. Just my preference.
Additionally, I think Hatch solves all the package management issues, in pure Python, and does so in a more elegant way than something nasty and complicated like Rust.
@@HaydenDoingThings could you explain how the choice of programming language affects your use of the software? Python itself is written in C and it's quite common these days that you pull in Rust based dependencies quite quickly (eg: the well known cryptography library is a good example of this). Hatch also is partially written in Rust so your own example is already not applying.
@@HaydenDoingThings There's Rust in Firefox and soon in Chromium. There's Rust in Windows and soon in the Linux kernel. There's Rust in a lot of very common libraries in Python. I think your goal of avoiding Rust is futile.
Instead of a blanket ban on Rust software. Try to evaluate each example by itself. What specifically do you find nasty or complicated about using Rye?