When I tried to install the librosa package using Conda, I got this error:
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:
Specifications:
- librosa -> python[version='>=2.7,<2.8.0a0|>=2.7|>=3.10,<3.11.0a0|>=3.10,<3.11.0a0|>=3.5|>=3.7|>=3.9,<3.10.0a0|>=3.9,<3.10.0a0|>=3.8,<3.9.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|>=3.7,<3.8.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0',build='*_73_pypy|*_cpython|*_cpython|*_cpython|*_73_pypy|*_cpython|*_73_pypy']
Your python: python=3.9
If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.
May I know how can I understand the specifications? Because there are so many Python versions it mentions and what I don't understand is how I can know Python is on the left most side of the chain or python appears to the right in this sentence:
If python is on the left-most side of the chain, that's the version you've asked for. When python appears to the right, that indicates that the thing on the left is somehow not available for the python version you are constrained to.
And from the error message, how can I determine which version is okay to install? May I know which python version should I install to avoid the Python incompatibility error?
Here are all of the packages that I currently have installed:
# Name Version Build Channel
_openmp_mutex 4.5 2_gnu conda-forge
_tflow_select 2.3.0 mkl anaconda
abseil-cpp 20200923.3 h01db608_0 conda-forge
absl-py 1.2.0 pyhd8ed1ab_0 conda-forge
aiohttp 3.8.1 py39h0fd3b05_1 conda-forge
aiosignal 1.2.0 pyhd8ed1ab_0 conda-forge
astor 0.8.1 pyh9f0ad1d_0 conda-forge
astunparse 1.6.3 pyhd8ed1ab_0 conda-forge
async-timeout 4.0.2 pyhd8ed1ab_0 conda-forge
attrs 22.1.0 pyh71513ae_1 conda-forge
blinker 1.4 py_1 conda-forge
brotlipy 0.7.0 py39h0fd3b05_1004 conda-forge
bzip2 1.0.8 hf897c2e_4 conda-forge
c-ares 1.18.1 hf897c2e_0 conda-forge
ca-certificates 2022.6.15 h4fd8a4c_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
cachetools 4.2.4 pyhd8ed1ab_0 conda-forge
certifi 2022.6.15 py39h4420490_0 conda-forge
cffi 1.15.1 py39hb26bf21_0 conda-forge
charset-normalizer 2.1.0 pyhd8ed1ab_0 conda-forge
click 8.1.3 py39h4420490_0 conda-forge
cryptography 37.0.4 py39h32042e6_0 conda-forge
flatbuffers 2.0.6 h4de3ea5_0 conda-forge
frozenlist 1.3.1 py39h0fd3b05_0 conda-forge
gast 0.4.0 pyh9f0ad1d_0 conda-forge
giflib 5.2.1 hb9de7d4_2 conda-forge
google-auth 1.35.0 pyh6c4a22f_0 conda-forge
google-auth-oauthlib 0.4.6 pyhd8ed1ab_0 conda-forge
google-pasta 0.2.0 pyh8c360ce_0 conda-forge
grpcio 1.46.3 py39h8a0731a_0 conda-forge
h5py 3.6.0 nompi_py39hbdd1fc2_100 conda-for ge
hdf5 1.12.1 nompi_h7bde11e_104 conda-forge
icu 68.2 h3621d8e_0 conda-forge
idna 3.3 pyhd8ed1ab_0 conda-forge
importlib-metadata 4.11.4 py39ha65689a_0 conda-forge
jpeg 9e h9cdd2b7_2 conda-forge
keras 2.4.3 pyhd8ed1ab_0 conda-forge
keras-preprocessing 1.1.2 pyhd8ed1ab_0 conda-forge
keyutils 1.6.1 h4e544f5_0 conda-forge
krb5 1.19.3 h7c456eb_0 conda-forge
ld_impl_linux-aarch64 2.36.1 h02ad14f_2 conda-forge
libblas 3.9.0 16_linuxaarch64_openblas conda-f orge
libcblas 3.9.0 16_linuxaarch64_openblas conda-f orge
libcurl 7.83.1 h8fd98b7_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 h516909a_1 conda-forge
libffi 3.4.2 h3557bc0_5 conda-forge
libgcc-ng 12.1.0 h3242a24_16 conda-forge
libgfortran-ng 12.1.0 he9431aa_16 conda-forge
libgfortran5 12.1.0 h41d5c85_16 conda-forge
libgomp 12.1.0 h3242a24_16 conda-forge
liblapack 3.9.0 16_linuxaarch64_openblas conda-f orge
libnghttp2 1.47.0 h75cb1c7_0 conda-forge
libnsl 2.0.0 hf897c2e_0 conda-forge
libopenblas 0.3.21 pthreads_h6cb6f83_0 conda-forge
libpng 1.6.37 hf9034f9_3 conda-forge
libprotobuf 3.14.0 hc71ff50_0 conda-forge
libssh2 1.10.0 h1ab2c7b_2 conda-forge
libstdcxx-ng 12.1.0 hd01590b_16 conda-forge
libuuid 2.32.1 hf897c2e_1000 conda-forge
libzlib 1.2.12 h4e544f5_2 conda-forge
markdown 3.4.1 pyhd8ed1ab_0 conda-forge
markupsafe 2.1.1 py39hb9a1dbb_1 conda-forge
multidict 6.0.2 py39h0fd3b05_1 conda-forge
ncurses 6.3 headf329_1 conda-forge
numpy 1.23.1 py39h7190128_0 conda-forge
oauthlib 3.2.0 pyhd8ed1ab_0 conda-forge
openssl 1.1.1q h4e544f5_0 conda-forge
opt_einsum 3.3.0 pyhd8ed1ab_1 conda-forge
pip 22.2.2 pyhd8ed1ab_0 conda-forge
protobuf 3.14.0 py39h99ab00b_1 conda-forge
pyasn1 0.4.8 py_0 conda-forge
pyasn1-modules 0.2.7 py_0 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pyjwt 2.4.0 pyhd8ed1ab_0 conda-forge
pyopenssl 22.0.0 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 py39ha65689a_5 conda-forge
python 3.9.13 h2eada40_0_cpython conda-forge
python-flatbuffers 1.12 pyhd8ed1ab_1 conda-forge
python_abi 3.9 2_cp39 conda-forge
pyu2f 0.1.5 pyhd8ed1ab_0 conda-forge
pyyaml 6.0 py39h0fd3b05_4 conda-forge
readline 8.1.2 h38e3740_0 conda-forge
requests 2.28.1 pyhd8ed1ab_0 conda-forge
requests-oauthlib 1.3.1 pyhd8ed1ab_0 conda-forge
rsa 4.9 pyhd8ed1ab_0 conda-forge
scipy 1.9.0 py39h7b076ec_0 conda-forge
setuptools 64.0.1 py39ha65689a_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snappy 1.1.9 hc7e91e1_1 conda-forge
sqlite 3.39.2 hc74f5b8_0 conda-forge
tensorboard 2.5.0 pyhd8ed1ab_1 conda-forge
tensorboard-data-server 0.6.0 py39h3144da0_0 anaconda
tensorboard-plugin-wit 1.8.1 pyhd8ed1ab_0 conda-forge
tensorflow 2.5.0 mkl_py39h22df468_0 anaconda
tensorflow-base 2.5.0 mkl_py39ha7bf56e_0 anaconda
tensorflow-estimator 2.5.0 pyh81a9013_1 conda-forge
termcolor 1.1.0 pyhd8ed1ab_3 conda-forge
tk 8.6.12 hd8af866_0 conda-forge
typing-extensions 4.3.0 hd8ed1ab_0 conda-forge
typing_extensions 4.3.0 pyha770c72_0 conda-forge
tzdata 2022b h191b570_0 conda-forge
urllib3 1.26.11 pyhd8ed1ab_0 conda-forge
werkzeug 2.2.2 pyhd8ed1ab_0 conda-forge
wheel 0.35.1 pyh9f0ad1d_0 conda-forge
wrapt 1.14.1 py39h0fd3b05_0 conda-forge
xz 5.2.5 h6dd45c4_1 conda-forge
yaml 0.2.5 hf897c2e_2 conda-forge
yarl 1.7.2 py39h0fd3b05_2 conda-forge
zipp 3.8.1 pyhd8ed1ab_0 conda-forge
zlib 1.2.12 h4e544f5_2 conda-forge
It is definitely not a conflict with Python version. For example, all the following solve without issue for me:
CONDA_SUBDIR=linux-64 conda create -dn foo python=3.9 librosa
CONDA_SUBDIR=osx-64 conda create -dn foo python=3.9 librosa
CONDA_SUBDIR=win-64 conda create -dn foo python=3.9 librosa
Rather, Conda is notoriously bad at reporting why it can't solve things. If you are interested in figuring out what is actually conflicting, I recommend trying Mamba:
conda install -n base -c conda-forge mamba
mamba install librosa
Otherwise, if you only care about getting up and running with librosa, then create a new environment:
conda create -n whatever librosa python=3.9
and use whatever Python version you want, though 3.8-3.10 are the only active versions (3.7 is in security-only mode and hits EOL June 2023).
The above, however, does not apply to OP's case, which is solving for linux-aarch64 architecture. At the time of question, Conda Forge did not yet offer linux-aarch64 builds for audioread. It is now available, so please try again, installing audioread from Conda Forge channel.
One can check whether a compatible version of a package is available on a specific architecture by using the --subdir argument of conda search, e.g., checking if tensorflow is available:
conda search --subdir linux-aarch64 tensorflow
though you shouldn't need the --subdir argument if the system you are on has the architecture you want to search - Conda will automatically use that subdir (shows up in conda info).
Generally, one can ask for a package to be built for linux-aarch64 by adding it to the "arch_rebuild.txt" list via a Pull Request on this repository.1
In the meantime, Conda does have an option to consider packages installed from PyPI in its solver. This option is:
% conda config --describe pip_interop_enabled
# # pip_interop_enabled (bool)
# # Allow the conda solver to interact with non-conda-installed python
# # packages.
# #
# pip_interop_enabled: false
That is, you want (at least temporarily) to use:
conda config --set pip_interop_enabled true
pip install audioread
mamba install librosa
The installation may still not work if other dependencies of librosa also lack linux-aarch64 builds. In which case, you'll have to request builds or try installing through pip install.
[1] In brief, edit the arch_rebuild.txt file to appended the package name you would like built for aarch64. Submit this as the PR.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With