首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Biopython缩进错误

Biopython缩进错误
EN

Stack Overflow用户
提问于 2012-05-04 13:34:09
回答 2查看 313关注 0票数 1

我已经涉足biopython大约一年了,最近我升级到了Biopython版本1.59。我一直在通过一些教程来更新我的技能,但是当我运行for循环和biopython库中的任何模块时,我总是得到下面的错误:

代码语言:javascript
复制
    IndentationError: expected an indented block

只有当我从命令行终端调用用Komodo Edit版本7.0.2编写的.py文件时,我才会得到这个错误:

代码语言:javascript
复制
    Priyas-iMac:~ Priya$ python /Users/priya/Documents/Python/Tutorials/BioParse.py
    Traceback (most recent call last):
      File "/Users/priya/Documents/Python/Tutorials/BioParse.py", line 4, in <module>
        SeqIO.write(rc, "/Users/priya/Documents/Python/Tutorials/ls_orchid_rc.fasta", "fasta")
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/SeqIO/__init__.py", line 400, in write
        from Bio import AlignIO
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/AlignIO/__init__.py", line 147, in <module>
        import NexusIO
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/AlignIO/NexusIO.py", line 19, in <module>
        from Bio.Nexus import Nexus
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/Nexus/Nexus.py", line 15, in <module>
        import os,sys, math, random, copy
      File "/Users/Priya/Documents/Python/Tutorials/random.py", line 27
        randLowHigh(5,10)
        ^
    IndentationError: expected an indented block

当我使用命令行调用我一年前编写的旧.py文件时,它们运行得很好。当我直接启动python并逐行输入教程示例时,它工作得很好:

代码语言:javascript
复制
    Priyas-iMac:~ Priya$ python 
    Python 2.7.3 (default, Apr 19 2012, 00:55:09) 
    [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from Bio import SeqIO
    >>> for seq_record in SeqIO.parse("/Users/priya/Documents/Python/Tutorials/ls_orchid.txt","fasta"):
    ...      print seq_record.id
    ... 
    gi|2765658|emb|Z78533.1|CIZ78533
    gi|2765657|emb|Z78532.1|CCZ78532

我如何修复我的.py文件,这样我就可以从终端运行它了?

对这个问题的任何见解都将不胜感激!

Priya

EN

回答 2

Stack Overflow用户

发布于 2012-05-05 01:09:18

事实证明,当我最初学习python时,我愚蠢地将一个教程文件命名为"random.py“,以练习制作随机数生成器。当biopython导入其他所需的模块时,它会一直指向该文件,而不是随机库模块:

代码语言:javascript
复制
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/Nexus/Nexus.py", line 15, in <module>
    import os,sys, math, random, copy
  File "/Users/Priya/Documents/Python/Tutorials/random.py", line 27
    randLowHigh(5,10)

谢谢大家的帮助!

票数 2
EN

Stack Overflow用户

发布于 2012-05-04 22:54:53

检查导入的所有文件和模块是否都有相同的缩进(制表符或空格以及相同数量的空格)。

Style guide for Python code中,您可以读取:

在每个缩进级别使用4个空格。

对于那些你不想弄得一团糟的老代码,你可以继续使用8空格的制表符。

关于制表符和空格:

从不混用制表符和空格。

最流行的缩进Python的方法是只使用空格。第二种最流行的方式是只使用标签。使用制表符和空格混合缩进的代码应转换为仅使用空格。当使用-t选项调用Python命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告。使用-tt时,这些警告会变成错误。强烈建议您使用这些选项!

对于新项目,强烈建议在制表符上仅使用空格。大多数编辑器都具有使这一点易于实现的功能。

也许Komodo正在自动更改某些内容(有些编辑器确实是这样做的)。尝试在更简单的编辑器中编辑该文件,并查找选项卡。您可以选择将空间和选项卡显示为可见。

希望它能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10443195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档