-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Obsolete pip2014.com #1731
Comments
pip2014.com also sets your This is critically important, because the advertised behavior of Especially given that sometimes Some users will say that this is too "invasive", and it should be opt-in. Let me just head those folks off at the pass and say definitively that it should be opt-out, because the sort of user who cares about that sort of thing is the sort of user who can figure out that they need to opt out; the user who stares, uncomprehending, at yet another I wish there were a better way to do this; a per-user equivalent of OS X's /etc/paths.d or something. But a hacky, special-case-filled platform-specific way of doing this is better than just being (from the user's perspective anyway) broken by default. |
@glyph All I will say about that is that please get which file you edit correctly. I once had a |
@alex I emphatically agree with one particular interpretation of that comment ;-). Basically - yes, it should be careful, it should be well-designed, and any configuration that a user has set up which breaks should be considered a serious bug in the path-manipulation tool. Perhaps this would actually warrant an entirely separate PyPA project whose entire job was being a library for managing shell environment stuff. I can see that this would be super handy and it would be nice to isolate that. Such a tool should also pay particular attention to being able to update the configuration that it performs when bugs are fixed, so that users who install it at different times don't have a zillion different versions of environment configuraiton. However, this should not mean that because this problem is hard to get completely correct that pip shouldn't try to do anything at all. It's broken for everyone by default right now, this is just about making it less broken for more people. |
Totally agree, I suppose the point of my comment was to info about a very On Fri, Apr 18, 2014 at 10:14 PM, Glyph notifications@github.com wrote:
"I disapprove of what you say, but I will defend to the death your right to |
I've experienced overwhelmingly the opposite. Especially pythons & rubies; they'll install one that puts itself on the path without their knowledge, and then later try to use another and meet absolute frustration and perplexion when they have an executable but its not the one they want and things start breaking. |
While I understand that this is essentially a Unix proposal, I'd just like to add a data point from my experience. I tend to specifically not have (python and) pip on my path, so that I don't accidentally run the system pip and install into the system Python. So if I type So I'm against path hacking by default on principle as the path is the user's domain. Utilities like pip2014 whose defined purpose is to set up the user's environment are of course exempt - the user just doesn't use the utility if they don't want to. But get-pip's defined purpose is to get pip I'd dispute that adding it to PATH is part of the defined purpose, but I would accept that the docs don't make that clear. Maybe the docs should simply make it clear that after getting pip, the user needs to make sure pip is on PATH before they can use it. (After all, whatever happens on Unix, that exception will still need to be made clear for Windows, so the docs won't get any clearer...) |
@pfmoore Isn't that what |
@Ivoz @pfmoore There are other ways to solve these problems than making pip broken by default. To address the issue raised by @Ivoz, the problem caused by these tools is not that they manipulate the user's PATH, but that they blindly and buggily manipulate the path, and then throw up their hands when there's a bug. Pip shouldn't do that. Pip should inspect the path carefully, always select the correct binary explicitly itself and not rely on $PATH for everything, and provide a clear explanation of what it's going to do when things might not work or there could be a conflict. One thing it could do is put a stub But all the layers of indirection that let you work on multiple disparate projects are predicated on the notion that you have worked on one project to get to the point that you know what Python is ;-). |
I hate to say it, but On Sat, Apr 19, 2014 at 11:18 AM, Glyph notifications@github.com wrote:
"I disapprove of what you say, but I will defend to the death your right to |
@alex That's one possible answer, but that also involves changing every Python project's documentation :). I think that's a bit annoying to type, but I want the average user to be using the GUI anyway. |
Also, remember that |
Well we support I think at the very least we should have a big obvious warning if |
I made a milestone for Improve our User Experience. |
Yes, this, precisely. Python is at its best when it can be completely submerged, an implementation detail that nobody is even aware of, a boon to the maintainers but completely invisible to end-users. The fact that Python can do this is one of its major advantages over, for example, Java. |
There was some discussion at the language summit about possibly including ensurepip in a future 2.7 installer as well. |
@dstufft wow, I'd never heard of that. That's cool. (I just checked and it seems like it's on the PyPI page but not in the help or the manual...)
@glyph I don't like using the term "broken by default" here. Particularly about pip. It seems to me that you are actually talking about Specifically, I'd like to understand exactly what is being proposed here:
|
@pfmoore I do not really have religion about an implementation strategy here. It would be absolutely fine with me if this were However, if we're going to be realistic about the state of |
|
And we haven't even started talking about |
@pfmoore It probably doesn't help if you're not aware of all the Windows isn't actually horrible here, it's just that command line tools have never been a major occurance or culture in Windows. Windows does have both System-Wide and User-specific In linux, this is set from various heirarchies.
So The Windows A In the case of Windows, a decent solution for In linux, since customizing |
Thanks to all for clarifications. As an "installing pip" issue, I'm happy to see things improved. And yes, I don't know enough about the Unix side of things to criticise - I'm happy with whatever the Unix folks feel is appropriate there. I'm somewhat concerned over the idea that manipulating PATH is the pip installer's issue. I can see that on Unix where there is typically no Python installer (is that correct?) but on Windows it seems to me that getting By the way @glyph - |
@pfmoore I think the debate about whose job it should be is an OK one (Probably the Python installer should handle it) but in the meantime if we can "patch" over bad behavior on the Python side (especially in the already released versions) I don't see any reason why we shouldn't on any platform. |
There are always going to be interesting quirks on various platforms; for example, ancient setuptools on OS X is one thing that pip2014 specifically works around. Pip or get-pip should not just give up and fail when presented with these challenges though; its release cycle is considerably faster than any of the things with the quirks in them and it can adjust. |
@pfmoore Thanks for the info about |
@glyph yeah, that was a hard-fought battle. We're not very good at capturing the details of why some of these recommendations are the way they are (I'm useless at it - as you may have noticed I always end up writing too much ;-)) I've just added pypa/packaging.python.org#51 as a reminder that we should cover this in the PUG. |
I would just like to say: ❤️ My name is Asheesh Laroia, and I approve of this thread. To the extent that my help in the pip2014.com creation and/or publicity helped move this forward, I'm honored. |
See also #1480 - this should probably be added to the description. (Or… the first comment, I guess?) |
So pip caches by default now, one thing marked off the list. |
Great! |
Just reminding everyone that it is 3/4 of the way through 2014 and in a few months in 2015 I am still going to be recommending a website called pip2014 to get the pip of the future … ;-) |
Up until a few minutes ago there was one less item done :( |
Per <pypa/pip#1731>, the features I care about from pip2014.com are now baked into pip. Yay!
I'm going to close this issue, the only remaining thing is defaulting to |
@glyph By any chance, could you link to this issue from http://pip2014.com? :) |
@pradyunsg A new baby took priority for a while but https://pip2014.com now has a link to this issue, as well as to pipenv. |
Awesome! Thank you! |
So @glyph made a thing, it's called pip2014.com and it installs pip, virtualenv, virtualenvwrapper, and adds a bunch of configuration around them all in order to make the defaults much much saner.
So, we have bad defaults, lets make the defaults good so pip2014.com is no longer a thing.
Things to do:
--user
the default when it makes sense to use it (Default to --user #1668)The text was updated successfully, but these errors were encountered: