-
Notifications
You must be signed in to change notification settings - Fork 177
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
Mismatching virtual package error should hint to solution (set system-requirements
)
#346
Comments
Add tip to the error of a to low local system requirement. closes #346
This should be re-opened. I just got this unhelpful error
pixi version 0.20.1 |
@ruben-arts can you reopen please? I don't have permissions to do so |
I should mention that the fix for this was not to add something to [system-requirements], but rather I needed to add "linux-64" to the platforms. It be very helpful if pixi would tell the user that. |
I also just got this for a ❯ pixi add --pypi syncstart==1.1.1
× failed to solve the pypi requirements of 'default' 'osx-64'
├─▶ Failed to build: `opencv-python==4.9.0.80`
├─▶ Failed to install requirements from build-system.requires (install)
├─▶ Failed to download and build distributions
├─▶ Failed to fetch wheel: numpy==1.22.2
├─▶ Failed to build: `numpy==1.22.2`
╰─▶ Build backend failed to build wheel through `build_wheel()` with exit status: 1 ... along with the longer [system-requirements]
macos = "11.0" |
Honestly the users should feel the power of system requirements and not the downside. I've got a proposal to solve this issue with some workflow improvements: TL;DR: Make pixi more flexible and let it interact with the dependency resolution automatically, and help the user by doing the work for them. DefinitionsVirtual packages: a dependency of a package that can not be provided as a conda package, these are system specifications or libc implementation on the system. e.g. SolutionLet's make pixi solve with the current available virtual packages. Then after the solve figure out what virtual packages are required. If those differ from the default virtual packages they will automatically be added to the manifest file as system requirements. This goes both ways, having higher or lower versions on your current machine. Solution to newly created problemThe down side of change would be that the solution(lock file) might only work for the latest machines as pixi picks the latest versions available for the given virtual packages. Potentially lowering the amount of machines your project can run on. This could be fixed by giving pixi an interactive option to re-solve for your machine, skipping the system-requirements given by the project. When it finds a different solution for your machine it automatically writes it back to the manifest, allowing the users to track these changes in vcs. Example of the interactive prompt:
Edit:
[system-requirements]
# Add system requirements that are non default
cuda = "12.1" Change I expect to be needed:
ping @baszalmstra @wolfv for input |
I think it IS really powerful, so I hope it will become super intuitive! For lots of tracking software (e.g. https://github.com/DeepLabCut/DeepLabCut, https://gitlab.com/polavieja_lab/idtrackerai) installation has been a major sticking point for adoption, especially since they depend on TensorFlow and thus getting For me personally, I think one of the confusing aspects have been around the OS-named Lastly, it would be great if pixi could "figure out" the correct requirement for the user's current platform. E.g. for |
I think your idea can work @ruben-arts but I cant really see the ramifications yet. Lets try to build an experiment in the near future. |
Hey @roaldarbol, Thanks for the input, this is good to take into account in the UX design. I believe that the things you mention are all atleast what I tried to explain in my proposal. So lets see what we can come up with in the first version! |
I just ran into this as well and wasn't sure what it meant.
|
@zachcp Yep exact same issue. Try: # [tool.pixi.system-requirements] for pyproject.toml
[system-requirements]
linux = "5.4" |
Problem description
should be something like
Similar for other virtual packages.
The text was updated successfully, but these errors were encountered: