求助:已安装的anti-SMASH无法导入AbstractPosition报错解决
问题描述
测试刚安装的anti-SMASH是否可用时,执行antismash --check-prereqs、antismash --help或antismash --help-showall均出现以下导入错误:
Traceback (most recent call last): File "/home/promt/asenv/bin/antismash", line 5, in from antismash.__main__ import entrypoint File "/home/promt/asenv/lib/python3.9/site-packages/antismash/__init__.py", line 12, in from antismash.main import run_antismash, get_detection_modules, File "/home/promt/asenv/lib/python3.9/site-packages/antismash/main.py", line 31, in from antismash.common import logs, record_processing, serialiser File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/record_processing.py", line 19, in from antismash.common.secmet import Record File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/__init__.py", line 11, in from .record import Record File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/record.py", line 25, in from .features import ( File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/features/__init__.py", line 6, in from .antismash_domain import AntismashDomain File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/features/antismash_domain.py", line 10, in from .domain import Domain, generate_protein_location_from_qualifiers File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/features/domain.py", line 13, in from .feature import Feature, FeatureLocation, Location File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/features/feature.py", line 13, in from antismash.common.secmet.locations import ( File "/home/promt/asenv/lib/python3.9/site-packages/antismash/common/secmet/locations.py", line 9, in from Bio.SeqFeature import ( ImportError: cannot import name 'AbstractPosition' from 'Bio.SeqFeature' (/home/promt/asenv/lib/python3.9/site-packages/Bio/SeqFeature.py)
解决方案
这个错误是由于Biopython版本不兼容导致的:Biopython 1.80及以上版本重构了SeqFeature模块,移除了AbstractPosition类,而当前安装的anti-SMASH版本依赖该类。解决步骤如下:
- 查看当前环境的Biopython版本:
pip show biopython - 卸载现有不兼容版本:
pip uninstall -y biopython - 安装anti-SMASH兼容的Biopython旧版本(推荐1.79版本,适配多数anti-SMASH稳定版):
pip install biopython==1.79 - 重新运行检查命令验证修复效果:
antismash --check-prereqs
如果是通过conda环境安装的anti-SMASH,改用conda命令调整版本:
conda install biopython=1.79
内容的提问来源于stack exchange,提问作者Erwin John Sioson
相关产品推荐
相关产品推荐

