Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upbpo-35003: bin/activate should always be present #18083
Conversation
This comment has been minimized.
This comment has been minimized.
The Scripts/bin thing is not specific to venv - for whatever reason, the original Windows implementation chose to use "Scripts" rather than "bin" for the executables directory under Windows, and I don't think it can be changed now without affecting backward compatibility. The venv code just fits into the existing, wider theme. My guess is you would need to propose a PEP to move everything over from "Scripts" to "bin" in the Windows Python world, and show that it would not break any existing code anywhere - seems like a tall order. This issue was already rejected before you added your PR so I'm not sure why you went to the trouble of creating a PR. Thanks for trying to help, but I think this PR should be closed for the above reasons. |
This comment has been minimized.
This comment has been minimized.
gaborbernat
commented
Jan 22, 2020
IMHO we should not copy, that would just be confusing. If anything we should make the bin folder a junction for the Scripts. |
This comment has been minimized.
This comment has been minimized.
I don't think we don't want to junction "all" the files, only those that are bash-shell-related... otherwise we'd have to change the PEP and we're back to all the reasons why it was rejected in the first place. A soft-link (if available) to Plus, junctions are not always available on all systems, although that's not my primary concern. The primary issue is the thousands of developers around the world using bash in CI that have had to solve this rather absurd problem in thousands of different ways ( The rest of Scripts/ belongs where it is. |
This comment has been minimized.
This comment has been minimized.
IMO, It's a platform difference. If you're developing on both Windows and Unix, you need to be aware of platform differences (even if you try to use some sort of Unix-lookalike that provides bash, it still can't hide the fact that you're not on Unix totally) and Scripts vs bin is just one of many such differences. Yes, it's an absurd and annoying difference, but the reasons it exists are historical, and changing it now is (as @vsajip said) likely to be way too big an exercise. Patching over just one part of the problem may help some specific cases, but overall will be more confusing, not less. (Why is |
This comment has been minimized.
This comment has been minimized.
gaborbernat
commented
Jan 22, 2020
I thought we only target here Windows, that always has junctions.
Soft links don't work always on Windows so that can't be.
Sounds to me like a bad assumption, and should be fixed in the documentation. The only way I can see for us to improve on this is to generate the bin, but that mirrors and is always whatever Script is (aka Windows NTFS junction). |
earonesty commentedJan 20, 2020
•
edited
Ensures that the common
bin/activate
, used by shell scripts on all platforms, is always present on all platforms.Possibly this should be an option, but that seems like overkill.
https://bugs.python.org/issue35003