cov-lineages / pangolin

Software package for assigning SARS-CoV-2 genome sequences to global lineages.
GNU General Public License v3.0
419 stars 108 forks source link

Python Error after Updating Pangolin #504

Closed steinbrl closed 1 year ago

steinbrl commented 1 year ago

Hey,

after conda update pangolin, it stopped working with the followed error massage:


Traceback (most recent call last): File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/snakemake/init.py", line 699, in snakemake success = workflow.execute( File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/snakemake/workflow.py", line 1039, in execute logger.run_info("\n".join(dag.stats())) File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/snakemake/dag.py", line 2159, in stats yield tabulate(rows, headers="keys") File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/tabulate/init.py", line 2048, in tabulate list_of_lists, headers = _normalize_tabular_data( File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/tabulate/init.py", line 1471, in _normalize_tabular_data rows = list(map(lambda r: r if _is_separating_line(r) else list(r), rows)) File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/tabulate/init.py", line 1471, in rows = list(map(lambda r: r if _is_separating_line(r) else list(r), rows)) File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/tabulate/init.py", line 107, in _is_separating_line (len(row) >= 1 and row[0] == SEPARATING_LINE) File "/home/lars/NGS/miniconda3/envs/pangolin/lib/python3.8/site-packages/snakemake/rules.py", line 1127, in eq return self.name == other.name and self.output == other.output AttributeError: 'str' object has no attribute 'name'

I also tried to make a new environment, with a fresh installation, it produces the same error. I really need pangolin for the productive work, the web application is not a replacement. I run Miniconda3 under Ubuntu16...

Best,

Lars

steinbrl commented 1 year ago

A reinstall from git-pangolin-master, with pip install fixed it. It is working again...

AngieHinrichs commented 1 year ago

Hi @steinbrl, glad you were able to get it working, and sorry about the inconvenience! I think this is due to the version incompatibility between tabulate 0.9 and snakemake <=6.8.0 described in #313. I think under some circumstances updating usher --no-pin can somehow lead to tabulate also being updated from 0.8 to 0.9 which causes the problem. (Anecdotally I saw it happen with conda update --no-pin usher but not mamba update --no-pin usher, although all the conda environment machinations are still pretty much a black box to me so I have no idea if that would hold for anyone else's environment.)

In case anyone runs into the same error, a reinstall as Lars did is the surest way to fix it, but you can also try this:

conda install -y tabulate=0.8.10

(Substitute mamba for conda if you use mamba)

Meanwhile @aineniamh -- @abel-betraoui pointed out in #489 that snakemake 7.15.2 fixed the problem with tabulate incompatibility, so unpinning snakemake and tabulate might prevent this problem in future versions? (If it doesn't cause new ones... 🙄)

aineniamh commented 1 year ago

Going to close this as issue has been resovled!

corneliusroemer commented 1 year ago

@aineniamh I just ran into this issue myself. How did you resolves this? I don't think the workarounds outlined by @AngieHinrichs are a permanent fix, more a stop gap.

corneliusroemer commented 1 year ago

A simple mamba update pangolin didn't do, so I started fresh. I wrote down instructions that should work more reliably here: #513