-
Notifications
You must be signed in to change notification settings - Fork 4
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
Unable to install sdist package #48
Comments
This is expected, |
I'm not really familiar with the implications of having a The thing is, any package having a dependency to this sort of package becomes un-rez-pipable as well. As an example, rez-piping
Is it an expected behaviour of rez-pip? |
We use pip to get the full list of dependencies. That's the only thing we use from pip. We don't install packages with pip. The tar file is called the source distribution (sdist). The source distribution doesn't contain any metadata that can be used to get the list of dependencies. So when you
|
Thanks a lot for the clarification, now that I dug a bit into this issue on my side as well I better understand this topic. From what I understand, we use the download url of what is returned by pip (around here), then the whl gets downloaded (here) and unzipped/installed (here). The installation part assumes we're installing a whl file and that's why sdist aren't currently supported if I understand corretly (at least that's where everything starts to break if I try to remove Couldn't we think about extending the ability of rez-pip so it can install sdists as well? Maybe I could rename the issue to "Unable to install sdist packages", what do you think? |
I unfortunately don't think we can with the current architecture. At least for cases like There is a very specific reason why sdists aren't supported and it's currently partially (or implicitly) documented at https://rez-pip.readthedocs.io/en/latest/faq.html#why-can-t-it-install-python-2-packages.
We could maybe support passing an sdist to rez-pip2 ( For pure python packages, this seems overkill to me, considering how easy it is to create wheels (you can either use I'll see if I can think about something that could simplify everyone's life, but I don't know when or if I'll be able to come up with a clear answer/plan for this. |
Thanks for the detailed clarifications, I now see your point and agree that rez-pip should probably not go down the build route as well. I'll attempt to build a |
When using rez-pip to install the future package, the install fails.
Environment
To Reproduce
rez env python-3.7.7 -- python -m venv C:\rez-pip
to generate a virtualenv that will host the rez-pip packagecd C:\rez-pip\Scripts
then.\activate
to enter the virtualenvpython -m pip install rez-pip
to install rez-pip in the virtualenvcd C:\rez-pip\Scripts
then.\activate
to enter the virtualenv ofrez-pip
.\rez-pip2.exe future
Expected behavior
Program installs future as a rez package (as future seems compatible with python 3.7.7).
Actual behavior
The error above occurs and nothing gets installed at all. When having the error with python-3.7.7, no further python version (like 3.9.7, 3.10.8, etc.) gets attempted by rez-pip in its loop.
Investigation
This is probably a pip-trick issue. This doesn't work:
but this seems to be okay:
I'm not too familiar with the
--python-version
and--only-binary
args of pip yet so I'll probably add more comments with further investigation.The text was updated successfully, but these errors were encountered: