scirpy icon indicating copy to clipboard operation
scirpy copied to clipboard

Can't install scirpy on Apple Silicon

Open a-munoz-rojas opened this issue 1 year ago • 10 comments

Describe the bug Unable to install scirpy on Apple silicon using conda/mamba

To Reproduce mamba install scirpy --channel conda-forge --channel bioconda

Expected behaviour Normal installation

System

  • OS: MacOSX (Apple Silicon Arm64)
  • Python version 3.9
  • Versions of libraries involved scirpy 0.13

Additional context The installation fails because of a dependency on parasail-python, which doesn't seem to be enabled in for osx-arm64 in conda? This is the error message I get:

bioconda/osx-arm64                                 129.0 B @   1.2kB/s  0.1s
bioconda/noarch                                      4.6MB @   4.6MB/s  1.1s
conda-forge/osx-arm64                                7.2MB @   4.4MB/s  1.8s
conda-forge/noarch                                  13.7MB @   4.6MB/s  3.3s

Pinned packages:
  - python 3.9.*


Could not solve for environment specs
The following package could not be installed
└─ scirpy   is uninstallable because it requires
   └─ parasail-python  , which does not exist (perhaps a missing channel).

a-munoz-rojas avatar Aug 18 '23 15:08 a-munoz-rojas

I'm afraid bioconda does currently not compile packages for ARM64. See also these issues:

https://github.com/bioconda/bioconda-utils/issues/706 https://github.com/bioconda/bioconda-recipes/issues/23454

You should still be able to install scirpy using pip install.

grst avatar Aug 21 '23 09:08 grst

Thanks for the info. I think now there are several packages available on the bioconda/osx-arm64 channel (even scirpy itself), it's just parasail that's not there. I can open an issue there, but based on the links you sent seems like it might be a while.

I also tried installing scirpy via pip but it also fails - seems to be an issue with parasail:

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for parasail
  Running setup.py clean for parasail
Failed to build parasail
ERROR: Could not build wheels for parasail, which is required to install pyproject.toml-based projects

I can open an issue with parasail, but thought you'd want to know installation is failing

a-munoz-rojas avatar Aug 21 '23 15:08 a-munoz-rojas

Thanks for the heads-up! Creating an issue in parasail sounds good! If you do, please tag me that I'm kept in the loop!

grst avatar Aug 22 '23 06:08 grst

Hello, I had the same issue on my Apple M2 Pro and fixed it by running the following code before installing scirpy: brew install automake libtool autoconf

djlisko01 avatar Sep 07 '23 17:09 djlisko01

Thanks for reminding me to follow up. Yes, that's exactly the fix I found as well. Here is the thread on parasail that describes it: https://github.com/jeffdaily/parasail-python/issues/24. To summarize:

  1. brew install automake libtool autoconf
  2. pip install scirpy

Should work to install on apple silicon. Installing via conda doesn't work because currently there is no bioconda recipe for parasail available for osx-arm64. Hopefully this helps.

a-munoz-rojas avatar Sep 25 '23 15:09 a-munoz-rojas

I am quite new to python, so my apologies if I miss the obvious ;-) . I have tried this approach as well using conda to install the dependencies.

  1. conda install automake libtool autoconf
  2. pip install scirpy

However, I get the same error:

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for parasail Running setup.py clean for parasail Failed to build parasail ERROR: Could not build wheels for parasail, which is required to install pyproject.toml-based projects

Even when I manually download the parasail source code, compiled it, and then installed the Python bindings.

Versions:

  • m4 1.4.18 h1230e6a_1
  • libtool 2.4.6 h313beb8_1009
  • autoconf 2.71 pl5340h80987f9_0
  • automake 1.16.5 pl5340hca03da5_1

Thanks in advance!

FvdBre avatar Mar 01 '24 12:03 FvdBre

In https://github.com/jeffdaily/parasail-python/issues/24, there's also mentioned libtools (with s) additionally.

If you can't make it work, please comment in the linked issue -- ultimately, this is an issue with parasail, not scirpy.

grst avatar Mar 01 '24 20:03 grst

Thanks, I will contact them.

FvdBre avatar Mar 02 '24 08:03 FvdBre

Now, with the numba implementation of TCRdist merged, we could consider making parasail an optional dependency and suggesting TCRdist as the standard alignment metric.

grst avatar May 17 '24 18:05 grst