-
Notifications
You must be signed in to change notification settings - Fork 43
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
#egg=name-version dep breaks package install in build-system.requires #252
Comments
Do you have setuptools installed? I have the same error with a clean virtualenv (with only an up-to-date pip) because your nettools package does not have a Also, you should use PEP 508 direct URL requirements (instead of the old egg notation): pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git i/pyproject.toml w/pyproject.toml
index 3e32eb4..b5cf268 100644
--- i/pyproject.toml
+++ w/pyproject.toml
@@ -1,3 +1,3 @@
[build-system]
-requires = ["setuptools", "wheel", "Cython", "https://github.com/wobblui/wobblui/archive/master.zip#egg=wobblui-master"]
+requires = ["setuptools", "wheel", "Cython", "wobblui @ https://github.com/benoit-pierre/wobblui/archive/using_fixed_nettools.zip#"]
build-backend = "setuptools.build_meta" Note the workaround the pip bug you already encountered (pypa/pip#6405). Patched wobblui and nettools here:
But this will just kick the can a little further down the road as PySDL2 is similarly dependent on setuptools being already installed, so you should really make sure pip, setuptools and wheel are installed and up-to-date for best results. |
@benoit-pierre setuptools are definitely installed (in system python I mean) is this possibly a build isolation problem? Because this worked fine before I moved Edit: for what it's worth, just to show it:
As for PEP 508 URLs, once I used them it broke for me. Is the |
I am just wondering, to support older pips and such I also specify nettools as |
Using the patched example from above, from a clean virtualenv (well technically a venv) with pip/setuptools/wheel installed, yes, it works fine.
Yes. |
Yes but it should normally work without nettools being patched, right? I don't understand how it is intentional that it wouldn't work for that, with setuptools present in system python. (which it is on this system!) What bothers me is that as you already mention, other legacy packages like PySDL2 could potentially cause the same issues so it would be interesting for me to understand why it doesn't work |
IMHO, it's a loosing battle to try to support older setuptools/pip versions. And |
Yes, it seems to work with a clean venv with pip / setuptools / wheel. |
If it does not for you, you'll have to provide the full output of running with |
Did you test it without a |
Yes, with your unpatched example. |
It's still installing, but building wobblui, so I'm past your error, no? |
Ooohhh you mean everything works for you fine in a clean venv with setuptools, I misread that sorry 😄 well that is interesting! For what it's worth, I think it happens past the cythonization of |
I'm getting an error with wobblui, but I think it's the use of an egg fragment that could be the issue:
But the temporary directory basename is really
|
Hmm okay, is that something I could/should fix? For what it's worth my |
Ok here is the full output of My impression appears to be that something here might be non-deterministic. The last run I failed to save it ended with |
Note that pip and setuptools interpret the egg fragment differently: setuptools expect So again, fix your requirements to use |
I dug a bit into the code, and currently install_requires is actually However, I assume from your very helpful hints that the Edit: oops it's not in pyproject.toml, missed that one. let's change that as well Edit: corrected from |
Unless I'm mistaken, egg fragments are something that's was added in setuptool, not formalized in any PEP. Anyway, this work:
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git i/pyproject.toml w/pyproject.toml
index 3e32eb4..656565e 100644
--- i/pyproject.toml
+++ w/pyproject.toml
@@ -1,3 +1,3 @@
[build-system]
-requires = ["setuptools", "wheel", "Cython", "https://github.com/wobblui/wobblui/archive/master.zip#egg=wobblui-master"]
+requires = ["setuptools", "wheel", "Cython", "wobblui @ https://github.com/benoit-pierre/wobblui/archive/working.zip#"]
build-backend = "setuptools.build_meta"
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git i/pyproject.toml w/pyproject.toml
index 3e32eb4..656565e 100644
--- i/pyproject.toml
+++ w/pyproject.toml
@@ -1,3 +1,3 @@
[build-system]
-requires = ["setuptools", "wheel", "Cython", "https://github.com/wobblui/wobblui/archive/master.zip#egg=wobblui-master"]
+requires = ["setuptools", "wheel", "Cython", "wobblui @ https://github.com/benoit-pierre/wobblui/archive/working.zip#"]
build-backend = "setuptools.build_meta" |
Yup, seems it was purely the for what it's worth, maybe other packages might also run into this upgrading to |
I don't think it's related to PEP 517 / 518 per se, but a general issue with egg fragments handling. |
For what it's worth, I had this in place without |
@benoit-pierre should I leave this open for further investigations or something? or should I close this? (since all that affects me personally is now resolved, I just removed the #egg=name-version things and everything works splendidly!) |
I think this can be closed as the issue is tracked here: pypa/pip#5271. |
@Jonast Pre-PEP-517, the build requirements were either being picked up from the installation environment (since the build wouldn't have been done in an isolated directory), or else they were getting installed implicitly by |
@ncoghlan yes but unless you put really big warning signs all over the place or just fix it, probably a lot more people will run into this. So something should be done IMHO, unless you want many confused people who had used |
@Jonast Aye, the closure here is only because you encountered the However, I'll add a note over there explicitly pointing out that more projects may start encountering this as they switch from installing their build dependencies with |
I have a problem that might be a packaging issue with my package (wobblui) or a pip bug.
The package itself in direct install works:
However, 1. download test2-example.zip, 2. extract it, and 3. install it with
pip
, and you'll see that for some reason, as a build-system.requires dependency ("pyproject.toml") it doesn't work:python version: 3.7.3
pip version: 19.0.3
Anyone happens to know why it's broken?
Does someone possibly see whether the package (which is openly available here: https://github.com/wobblui/wobblui ) has a problem causing this, or whether this is a pip bug?
The text was updated successfully, but these errors were encountered: