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.
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 🍷
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!
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.
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'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.
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
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
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?
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.
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 ?
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.
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 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 😊
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.
rye is a cargo for python, what could be better? :)
Legendary, this is gonna be the new norm for sure
Awesome. Hope this gets BIG.
what keyboard are u using holy fk
This is amazing. Thanks Armin.
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 ***
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.
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 🍷
awesome! familiar with the cargo like, if the "rye sync" can be automatic call by "rye run" will be nicer!!!
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!
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.
When you add a dependency does it also check for conflicts like poetry does?
Can there be "autosync" ? That way i dont have to type "rye sync" each and every time
He bungled the flask quickstart :D !
what's the difference between rye and uv?
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? 😉
amazing! please post more! ... keyboard name /link ?
It’s a keychron q3 max with banana switches.
How can we use this with frameworks like FastAPI, django
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
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
Looks very promising!
Super exciting project! Thanks!
PS. love your shell theme, how do I make mine look like yours?
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
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.
How this works in pair with docker?
e.g. I want to use rye locally, but docker container wants requirements.txt, right?
My god, that’s a good sounding keyboard
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?
what font does he use in the console?
does rye create executables as well?
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.
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
Oh! Das sieht super toll aus!
Wow so it's like cargo for python, fantastic
insert xkcd comic about charging standards.
docker?
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.
I love using rye!
THANK YOU VERY MUCH
Let's go ruby influence through rust
Okay now i want to learn vim
We can’t hear you because of your keyboard.
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
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!
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?