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

Issues with conda installation: incompatibilities between python versions of fastani and pyspoa? #156

Open
thierrygrange opened this issue Jul 11, 2024 · 2 comments

Comments

@thierrygrange
Copy link

You wrote in the readme file that Parsnp also requires RaxML (or FastTree), Harvest-tools, and numpy. Some additional features require pySPOA, Mash, FastANI, and Phipack. All of these packages are available via Conda (many on the Bioconda channel).

Dear colleague

I am struggling to install all tools in a single conda environment dedicated to parsnp. There are apparently incompatibilities between the python versions needed for the various tools.
When installing fastani via conda, it installs a deprecated version of python, python-2.7.18, which may prevent installing of pyspoa which requires python > 3.10 <3.11 and may also affect the code.

When trying to install pyspoa after I installed fastani (which is not available anymore on the bioconda channel despite what is written on the conda web site, but can be found when using default channels), I receive the following errors:

LibMambaUnsatisfiableError: Encountered problems while solving:

  • package pyspoa-0.0.10-py310h0dbaff4_0 requires python >=3.10,<3.11.0a0, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ pin-1 is installable and it requires
│ └─ python 2.7.* , which can be installed;
└─ pyspoa is not installable because there are no viable options
├─ pyspoa [0.0.10|0.0.3|0.0.9|0.2.1] would require
│ └─ python >=3.10,<3.11.0a0 , which conflicts with any installable versions previously reported;
├─ pyspoa [0.0.10|0.0.3|0.0.9|0.2.1] would require
│ └─ python >=3.8,<3.9.0a0 , which conflicts with any installable versions previously reported;
├─ pyspoa [0.0.10|0.0.3|0.0.9|0.2.1] would require
│ └─ python >=3.9,<3.10.0a0 , which conflicts with any installable versions previously reported;
├─ pyspoa 0.0.3 would require
│ └─ python >=3.6,<3.7.0a0 , which conflicts with any installable versions previously reported;
├─ pyspoa 0.0.3 would require
│ └─ python >=3.7,<3.8.0a0 , which conflicts with any installable versions previously reported;
├─ pyspoa 0.2.1 would require
│ └─ python >=3.11,<3.12.0a0 , which conflicts with any installable versions previously reported;
└─ pyspoa 0.2.1 would require
└─ python >=3.12,<3.13.0a0 , which conflicts with any installable versions previously reported.

Pins seem to be involved in the conflict. Currently pinned specs:

  • python 2.7.* (labeled as 'pin-1')

How can I solve the issues and have a fully functional conda environment compatible with most of the parsnp script? Can you recommend specific versions of the various tools to install them with conda specifying the versions?

In addition, which version of raxml can be used, raxml of raxml-ng? It would be good to be able to use raxml-ng.

Finally, a fully functional singularity or docker environment would be ideal to circumvent problems stemming from constantly evolving dependencies creating new incompatibilities between the various tools used in your very appealing script.

Thanks for your help

Thierry Grange

@thierrygrange
Copy link
Author

In addition, I have also tried installing from source parsnp in a Centos 7 environment that is not compatible anymore with conda install. I installed some of the dependencies with pip install instead of conda. I also encountered an incompatibility when trying to pip install pyspoa, in that case even though I had not yet tried to install fastani. pyspoa thus seems to create an issue in various configurations. When trying to run parsnps, I receive an error message saying that pyspoa is needed.

bkille added a commit that referenced this issue Aug 10, 2024
@bkille
Copy link
Contributor

bkille commented Aug 10, 2024

Hi @thierrygrange, sorry for the delayed response. I've made a fix that will make sure the pyspoa module is not imported if you run with --no-partition. It will be in the next release!

In the meantime, have you tried creating a fresh environment just for parsnp? i.e.

conda create -n parsnp-env "parsnp>=2.0.5"

This sometimes works better than creating an environment first, then installing the desired package, as then conda can decide which python version to create the environment with based on the package you're requesting.

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

2 participants