'module'对象不可调用 - Bio.IUPAC

Sai*_*thi 4 python biopython

当我尝试时,

from Bio.Alphabet import IUPAC
from Bio import Seq
my_prot = Seq("AGTACACTGGT", IUPAC.protein)
Run Code Online (Sandbox Code Playgroud)

为什么我会遇到以下错误:

TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)

PS:这是BioPython's Cookbook的一个例子

Ben*_*ott 8

在BioPython源代码中,"Seq"类位于路径"/Seq/Seq.py" 中的文件" Seq.py "中

含义...您需要导入Seq(文件),这意味着它是一个"模块",然后在"模块"'Seq'中调用类"Seq"

试试这个:

from Bio.Alphabet import IUPAC
from Bio import Seq
my_prot=Seq.Seq("AGTACACTGGT",IUPAC.protein)
Run Code Online (Sandbox Code Playgroud)

如果您在Python中对于您要导入的内容以及您调用的内容感到困惑,可以执行以下操作:

import Bio.Seq
print type(Bio.Seq)
>>> <type 'module'>
print type(Bio.Seq.Seq)
>>> <type 'classobj'>
Run Code Online (Sandbox Code Playgroud)

  • 通常,当您看到此模式时,库作者可能希望您编写`来自Bio.Seq import Seq`.然后像在问题中一样使用`Seq`类. (2认同)