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