-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Equivalent of pip install --no-binary #365
Comments
I would appreciate some clarity on this front as well. The currently recommended installation of
What is the right way to install Thanks! |
This seems to work:
|
Is there a solution with Poetry that involves a change to the The team I work on is trying to install |
I agree with @RevolutionTech that this should be an option for dependencies in |
In the interest of full transparency I should mention that this is no longer an urgent need for the team I work on since modern versions of That said, I still think that this would be a really great feature, and I am sure there are other packages besides |
Related / duplicate: #1316 ? |
I ran into an issue with the A few questions:
|
Yes, indeed |
I'm watching this issue as |
This is not a duplicate of #1316 since this issue, as an install override, doesn't drag in the question of config files/lock file specifications, platform string matching, etc. There will always be systems that have nonstandard system libraries, patches, feature flags turned on/off that cause wheel incompatibility, where it doesn't make sense to force everyone to use source packages. Another example, |
|
To install e.g. rasterio without wheels for GDAL, we need to provide the
which feels like bad practice. |
We have a similar issue when installing geopandas with the pygeos backend, where we need to do :
|
Reinstalling with
|
Has anybody figured out how to get this into a Are there any plans to support this in the future if it's not already supported in some way? |
None of these workarounds work when your project is published to PyPI and the user installs it with pip. Our project is intended to run on small systems like Raspberry Pi, one of which (Zero W) is still being produced with a 32bit CPU. PyYAML doesn't include 32 bit binaries, so we need to make sure the source package is installed instead of the 64bit wheel. Is there currently a workaround that will suit this use case? Changing the instructions from pip install <project> to pip install --no-binary pyyaml pyyaml
pip install <project> sucks. EDIT: PyYAML was only failing to install because we were using |
One option to try is to take full advantage of the dependency analysis that poetry provides to manage compatible versions and then export the lock file to a requirements.txt file, e.g.
Or build the package and then pip install it:
The first approach can leverage the In this approach, poetry might not install anything, pip does it all. In this approach, the env-var options should work when a build environment already provides shared libs that should be used for the python bindings. |
Another solution that appears to work for me is to use the
It is not ideal, and a bit more work to maintain, but in my case it works. Background: |
This is how I would have liked to see an option to skip wheels: grpcio = { version = "^1.43.0", format = "sdist" } or maybe to more closely match the pip flags: grpcio = { version = "^1.43.0", no_binary = true } |
poetry config:# Skip all binaries
$ poetry config --local installer.no-binary :all:
# Skip specific package binaries
$ poetry config --local installer.no-binary httpx,uvicorn
# Do not skip any binaries (default)
$ poetry config --local installer.no-binary :none: |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Question
How can I specify that I don't want the binary package to be installed, ie. the equivalent of pip install --no-binary?
The text was updated successfully, but these errors were encountered: