-
Notifications
You must be signed in to change notification settings - Fork 62
ENH: Answer the question - what's the difference between pip and conda and why does pip install . -e install a package that's not on pypi? #505
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
Comments
the narrative idea of having personas and trying to present those stories with how to do the things that the persona probably needs to do... |
i don't know anything about conda, so i would be bad at answering the first one aside from saying "conda manages system dependencies in addition to python dependencies" I can def answer the second one. It looks like we already do actually: https://www.pyopensci.org/python-package-guide/tutorials/installable-code.html#step-5-install-your-package-locally python-package-guide/tutorials/installable-code.md Lines 531 to 551 in f31ba96
the only thing we'd need to add there to answer this specific question re: on pypi/not on pypi is just that we are asking it to install "the current directory" when we ask to install " I'm not sure if it would be too much detail to add a link to the pip docs which explain this fully, and be like "you can also install stuff from URLs and git repos and stuff" with an example e.g. installing numpy directly from the URL to the |
Jonny's summary of the second point is excellent. This is exactly what I came here to say: don't make the Also not a typical conda user, but I would say the bigger differences between pip and conda for the end-user developer are the scope of controlled packages (as Jonny said, conda goes beyond Python packages), the default index (PyPI vs anaconda), the expected isolation method (v[irtual]env vs conda) - I don't want to say default as pip is not an environment manager and that is another difference, and for advanced users and authors - the metadata specifications. I don't know if conda has a concept of an editable install, but I'm sure it has a concept of a local install and in that way it is similar to |
Ok - so the page I think that is throwing users off is this one . not everyone who reads the guide will read a tutorial so we can definitely cross link - but i remember now. This page has a very brief overfiew of pypi and then it talks about conda but skips pip. I think it would be helpful to have an explanation at the top of the two package managers vs So what is pip vs conda (maybe a table would be nice here)
Pip is another package manager.
So i think a clear table explaining these two buckets of tools is important to clarify for users. Another thing that came up at pycon was environments and installing python. I think there is just general confusion in this area similar to packaging tools that we could excel at targeting and explaining! I know this isn't all packaging but because it all becomes blurred because for example pip is technically a packaging tool (backend) but also a envt mgr 🤯 i hope this helps clarify this issue a bit! i think it's a great and important one for us to tackle at some point. then we step into UV and pixi from there... we can do it. 🚀 |
Pip is not an environment manager; it is a packaging tool, but it is not a build backend and should not be treated as a traditional build front end (though I guess it is technically).
Just say "to install a package"
Please don't put this in any guide or tutorial. Pip should not be a part of any regular build/release workflow of a package maintainer. It has been abused as such for many years, but this has largely harmed the packaging ecosystem, and is not a recommended practice. |
Uh oh!
There was an error while loading. Please reload this page.
This page begins to explain the difference but it doesn't answer the questions posed in the issue title above.
What is the difference between the two
How can pip install -e . install my package if it's not on pypi?
This may be related to the environments discussed in another issue.
cc @chenghlee
We might want to add this content on this page
And also it might be good to consider personas which would help a user find the things that they need to know ...
The text was updated successfully, but these errors were encountered: