-
-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Global shim's dependency management is confusing and non-intuitive #1093
Comments
Not a replacement for docs, but there is a video on how the rye shims work https://www.youtube.com/watch?v=TKnYcyz095g by Armin Existing docs are under https://rye-up.com/guide/shims/ - it would be great to be detailed about what's missing. One thing I can spot now is that the docs make it sound as if the python +VERSION feature requires global-python to be active, but it does not 🙂 (which is a nice feature IMO) |
Ultimately, I think I realize now that rye's method of managing the global Python version isn't actually a 1:1 replacement for the normal system of managing a global Python installation. From what I understand (I may be wrong), rather than maintaining a single, global Python environment which is what most people would expect, it creates a new isolated environment for every new package. For simple self-contained Python scripts that you want to install globally, this is amazing. However, a common reason many people use the global Python environment is for the interactive REPL and for running quick scripts that have minimal dependencies. For these purposes, the global Rye shim is not only unsuitable, but actively confusing. Here's why:
Now combine these on top of permutations of running Overall for these reasons, I think we really should avoid giving users an easy accidental pathway into this hell to maintain the project's mission of "A hassle-free experience for Python developers at every level." 😂 If we wanted to make this easier, I think it's possible, but it just involves building a simple supported CUJ for these use cases (ie. |
Note that That's a different feature than global shims for python which I thought this was about - best to clarify the issue. |
The issue is just about the entire rye global shim experience leading to confusion. I think I might have conflated the two (good catch). In general I think it's because it's unclear how to install dependencies on the rye-managed Python versions using global shims which would lead people to using |
Good point, Rye needs to clarify that. I'm not sure what the design is, but it looks like global shims only offer python toolchains and no explicit (--system/--user type) package install. For those that only use virtualenvs, that's not a problem. |
There are some important open questions around using rye to manage the global Python version. Notably:
Given these open questions and the confusion it creates, I wonder if the global shim option should be removed, at the very least from the automated installer. What do you think?
Alternatively, if we get some docs on the global shim and know how to install packages and run
ipython
then that would also solve this issue.The text was updated successfully, but these errors were encountered: