Skip to content
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

Cannot install pairix on python3.8 #24502

Open
lldelisle opened this issue Sep 23, 2020 · 10 comments
Open

Cannot install pairix on python3.8 #24502

lldelisle opened this issue Sep 23, 2020 · 10 comments

Comments

@lldelisle
Copy link
Contributor

Hi,
This is a very naive question, I don't understand why pairix cannot be installed on python3.8. When I try to install it I get:

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

Specifications:

  - pairix -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']

Your python: python=3.8

But I don't see anywhere in the recipe where there are restrictions on the python version:
https://github.com/bioconda/bioconda-recipes/blob/master/recipes/pairix/meta.yaml

Thanks

@nextgenusfs
Copy link
Contributor

nextgenusfs commented Sep 27, 2020

I just ran into the same thing -- its because the build environment is running python 3.8, so since pairix looks like it will run on 2.7 --> 3.7, then it fails. I don't necessarily know what the fix is at the moment. If/when I find out I'll post here.

@nextgenusfs
Copy link
Contributor

So based on what is here: https://bioconda.github.io/developer/_autosummary/bioconda_utils.lint.check_noarch.html?highlight=noarch#bioconda_utils.lint.check_noarch.should_not_use_skip_python

I think that meta.yaml should just limit to python <3.8 based on your versions specified, ie something like:

requirements:
  host:
    - pip
    - python <3.8
  run:
    - python <3.8

@lldelisle
Copy link
Contributor Author

Hi,
What I don't understand is that in their recipe there is no restriction so why conda did not build it on 3.8. Is there somewhere hidden where it is specified that explain why? Or conda tried and it failed because the code is not python 3.8 compatible?
Thanks

@nextgenusfs
Copy link
Contributor

I think it just uses 3.8 (most recent by default). In this package setup.py I'm assuming that 3.8 is not listed as in the versions that it supported, and so it died trying to build it.

@lldelisle
Copy link
Contributor Author

OK thanks

@lldelisle
Copy link
Contributor Author

I am sorry to insist but I really don't see where it is written that python3.8 is not possible. In pairix there is one part which is coded in C so I don't see why it is related to python version and one part which is python (pypairix) but which is working with python 3.8 at least with pip it is working.
Do you have any way to get access to the log of bioconda to check why the build failed on python 3.8?
Thanks

@lldelisle lldelisle reopened this Oct 26, 2020
@nextgenusfs
Copy link
Contributor

I was just going off of your initial post on the py build error. The package in bioconda perhaps has just not been compiled with py3.8 --- if it works with pip you can just use that inside the conda environment to install any other package.

@lldelisle
Copy link
Contributor Author

Let put more context.
I am developing pygenometracks which is in bioconda which itself depends on cooler which is in bioconda which itself depends on pairix. My final goal is to make pygenometracks available through conda on python 3.8.
As pygenometracks is only python base and cooler did not write his dependency for pairix in the setup.py and both are available on conda, I can do:

conda create -y -n pgt_python3.8 python=3.8
conda activate pgt_python3.8
pip install pygenometracks

But this is dirty and this will not install the non python dependencies of both packages which is why conda is better than pip...
So, it would be much better if pairix would be available on bioconda on python 3.8. I don't see anywhere on the recipe or in the setup.py that there is a restrction but the recipe has not been modified since May 17th, could it be that?
https://github.com/bioconda/bioconda-recipes/blob/master/recipes/pairix/meta.yaml

Thanks

@joachimwolff
Copy link
Contributor

@dpryan79 Can you maybe explain this to us? Thanks a lot!

@nextgenusfs
Copy link
Contributor

I think if you do a PR on pairix and just increase the build number by 1 that it will then try to build -- and show you the log builds, etc in the PR. Would seem to make sense if it hasn't been built since May that would have predated the py3.8 rebuilds? Sorry if I've made it more confusing/worse -- was initially just trying to help as I thought I had a similar problem. But agree that there doesn't seem to be any reason it shouldn't build on py38 based on the info in that package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants