-
Notifications
You must be signed in to change notification settings - Fork 37
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
Namespace packags and setup.py develop do not place nicely. #12
Comments
See pip #3 for a related discussion. |
fwiw, I've only ever cared about Entry points themselves are a glorious mess, too, but we don't have anything better. |
We do actually have a bettter option: *.pth files in virtual environments are a much better solution to this than dependency links, since they can handling multi-portion namespace packages properly and transparently. *.pth files are only evil in global installations (since they implicitly alter sys.path for everything run in that environment with site module processing enabled) |
After reading through various stuff on this, I'm still unclear as to what needs to happen for this to be fixed? Does I'm asking these questions because I'm willing to do the work, but I want to make sure I'm carving the right pumpkin. |
@jonparrott I think you're unclear because we're all unclear ;) Something I think may fix this is if
We may be trading one problem for another (e.g. anyone using a "shared virtualenv" model for multiple projects that they want to keep separate isn't going to like that change), but we would gain a fair bit in simplicity and predictability (since we'd be using a core import system feature, rather than something specific to setuptools) |
Related to the "shared virtualenv" problem, I also just realised that .pth files could be used to implement virtualenv inheritance: putting a |
Oh, that makes me feel better.
That sounds reasonable. Could we be even more reasonable and put the new behavior behind a flag (e.g.
That sounds interesting, but not a use case I wanna focus on for the moment. |
Starting off with the new behaviour behind a flag sounds like an excellent idea, as that enables two things:
That would suggest it also makes sense to add a "--use-egg-link" option to start setting up for a possible future change to the default behaviour (assuming "--use-pth" actually does turn out to fix the current problems). |
SGTM, I'll start trying to make this materialize. FYI, I'm familiar with pip's codebase but not setuptools, so the first draft might be slightly more hacky than expected. :) |
(rough) PR sent: pypa/setuptools#789 |
setup.py develop
uses an egg-link (cross platform symlink basically) in order to make it work. However this fails miserably when the packages you're trying to develop have a setuptools style namespace package.The text was updated successfully, but these errors were encountered: