Closed widdowquinn closed 2 years ago
With respect to this, we should be flagging the unavailability of fastani
via conda
under Python 3.9 in the documentation, and pointing users to the fastani
installation instructions, e.g. https://github.com/ParBLiSS/FastANI
The current situation as I see it is that:
fastANI
will install on Linux because conda
will grab the binariesfastANI
will install on macOS with Python <= 3.8 (approximately) using conda
fastANI
will not install on macOS with Python >= 3.9 (approximately) using conda
When installing manually on macOS/Python3.9 according to instructions at https://github.com/ParBLiSS/FastANI an incorrect compile string is produce by the configure
script.
$ make
c++ -O3 -DNDEBUG -std=c++11 -Isrc -I ${CONDA_PREFIX}/lib/include -mmacosx-version-min=10.7 -stdlib=libc++ -Xpreprocessor -fopenmp -lomp -DUSE_BOOST src/cgi/core_genome_identity.cpp -o fastANI ${CONDA_PREFIX}/lib/lib/libboost_math_c99.a -lstdc++ -lz -lm
Specifically, an extra lib/
is inserted into the $PATH
to the boost
library, and it expects a .a
suffix rather than the .dylib
. The correct compile string is:
$ make
c++ -O3 -DNDEBUG -std=c++11 -Isrc -I ${CONDA_PREFIX}/lib/include -mmacosx-version-min=10.7 -stdlib=libc++ -Xpreprocessor -fopenmp -lomp -DUSE_BOOST src/cgi/core_genome_identity.cpp -o fastANI ${CONDA_PREFIX}/lib/libboost_math_c99.dylib -lstdc++ -lz -lm
and this compiles a working fastANI
binary, in my hands.
NOTE: if fastani
is in a requirements.txt
file then all installations in that file fail, when fastani
fails.
I think we have three options:
fastani
in the requirements-thirdparty.txt
file and, when it fails for people, have documentation informing them that they need to remove fastani
from that file and install it themselvesfastani
from the requirements-thirdparty.txt
file and have documentation informing users that they need to install it themselvesrequirements-fastani.txt
file containing only fastani
so that the other requirements can install OK, but have documentation informing users that they need to install it themselves if the installation of fastani
fails.See branch issue_377
.
Summary:
The third-party dependency
fastani
cannot be installed withconda
ormamba
under Python 3.9.Description:
fastani
is an item inrequirements-thirdparty.txt
but is not installable under Python 3.9:Consequently, the
pytest -v
test fails:Reproducible Steps:
pyani
under Python 3.9 in any standard way (e.g.git
clone thenpip install -e .
, etc.) -fastani
will not be installed.pytest -v
(if cloned) or apyani fastani
commandCurrent Output:
Failed tests under
pytest
, errors withpyani fastani
.Expected Output:
fastani
tests should be skipped inpytest
iffastani
is unavailable.pyani fastani
should report thatfastani
is not installed, and fail gracefully.pyani Version:
v0.3.0 (commit b8722f0)
Python Version:
3.9
Operating System:
macOS