EI-CoreBioinformatics / portcullis

Splice junction analysis and filtering from BAM files
https://ei-corebioinformatics.github.io/portcullis/
GNU General Public License v3.0
38 stars 9 forks source link

UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment #55

Closed chnych closed 3 years ago

chnych commented 4 years ago

Hi, I'm trying to download the latest version of portcullis with conda If I used

conda install -c bioconda portcullis

It download the version 1.1.2, which leads to "type object 'DataFrame' has no attribute 'from_csv' " problem

If I used

conda install -c bioconda portcullis=1.2.2

with Python3.8

It showed

Found conflicts! Looking for incompatible packages. failed

UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment:

Specifications:

  • portcullis=1.2.2 -> python[version='>=3.6,<3.7.0a0|>=3.7,<3.8.0a0']

Your python: python=3.8

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.

However, if I used

conda install -c bioconda portcullis=1.2.2

with Python3.7

It showed

Found conflicts! Looking for incompatible packages. failed

UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment:

Specifications:

  • portcullis=1.2.2 -> python[version='>=2.7,<2.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0']

Your python: python=3.7

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.

It seems like it's impossible to install the latest version of portcullis with conda now.

lucventurini commented 4 years ago

Dear @chnych

Many thanks for the heads up. We will be looking at it ASAP.

Kind regards

lukesarre commented 3 years ago

Hi @lucventurini ,

If it is useful, I just wanted to add that intentionally installing a specified version of portcullis=1.1.2 into a fresh conda environment runs into the same "type object 'DataFrame' has no attribute 'from_csv' " problem.

I understand this is due to an update to zlib and boost (as you mentioned in https://github.com/maplesond/portcullis/issues/50) As 1.2.2 is inaccessible right now, it would be helpful to be able to use the old 1.1.2 version. Would it be possible to use portcullis=1.1.2 if the versions of zlib and boost that were intended to be used with 1.1.2 were specified in the conda install? Would it be possible to find out what these versions are?

Kind regards, Luke

lucventurini commented 3 years ago

Dear @lukesarre

Portcullis 1.2.2 is actually installable in Conda using Python 3.8 or later, I just tried:

echo -e "dependencies:\n  - python==3.8" > /tmp/port.yaml
conda env create -n test_portcullis -f /tmp/port.yaml
conda activate test_portcullis
python --version
conda install -c bioconda -y "portcullis>=1.2"

Kind regards,

lukesarre commented 3 years ago

Hi @lucventurini , Thanks for your reply - unfortunately I have tried the code above and have encountered the same error message described by @chnych above.

[btx832@frontend8 ~]$ echo -e "dependencies:\n  - python==3.8" > /tmp/port.yaml
[btx832@frontend8 ~]$ conda env create -n test_portcullis -f /tmp/port.yaml
Collecting package metadata (repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.8.2
  latest version: 4.9.2

Please update conda by running

    $ conda update -n base -c defaults conda

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test_portcullis
#
# To deactivate an active environment, use
#
#     $ conda deactivate

[btx832@frontend8 ~]$ conda activate test_portcullis
(test_portcullis) [btx832@frontend8 ~]$ python --version
Python 3.8.0
(test_portcullis) [btx832@frontend8 ~]$ conda install -c bioconda -y "portcullis>=1.2"
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                                                                      

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - portcullis[version='>=1.2'] -> python[version='>=2.7,<2.8.0a0|>=3.9,<3.10.0a0|>=3.5,<3.6.0a0']

Your python: python==3.8

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.
lucventurini commented 3 years ago

That is weird.

lucventurini commented 3 years ago

Hi @lukesarre

I tried to replicate using conda instead of mamba, and I am still able to install ...

$ echo -e "dependencies:\n  - python>=3.8,<3.9" > /tmp/port.yaml
$ conda env create -n test_portcullis -f /tmp/port.yaml
$ conda activate test_portcullis
$ python --version
Python 3.8.6
$ conda install -c bioconda -y "portcullis>=1.2.2"
$ portcullis
Portcullis Help

Portcullis is a tool to identify genuine splice junctions using aligned RNAseq reads
[...]

May I suggest updating conda on your system? It warns that it is out of date (4.8.2 vs 4.9.2) and I suspect that it might be the source of your installation problem.

lukesarre commented 3 years ago

Hi @lucventurini , I didn't have the permissions to update conda, however I managed to get it working! I don't understand what the underlying issue was exactly, but the following seemed to work:

conda create -n portcullis-env -c bioconda -c conda-forge "portcullis>=1.2" python=3.8
conda activate portcullis-env
portcullis --version

All the best, Luke

lucventurini commented 3 years ago

Hi @lukesarre

Thank you for providing us the method that functioned for you! I will close the issue now.

Kind regards