>source

RSeQC라는 Python 패키지에서 read_distribution.py라는 함수를 실행하려고합니다. 그러나 다음 명령을 실행할 때 :

python3 read_distribution.py -i mysample.bam -r hg38_RefSeq.bed

다음과 같은 오류가 발생합니다.

File "distribution.py", line 278
     print  "%-30s%d" % ("Total Reads",totalReads)
                   ^
 SyntaxError: invalid syntax

read_distribution.py 코드의 275-282 행은 다음과 같습니다.

except StopIteration:
    print >>sys.stderr, "Finished\n"                
print "%-30s%d" % ("Total Reads",totalReads)
print  "%-30s%d" % ("Total Tags",totalFrags)
print  "%-30s%d" % ("Total Assigned Tags",totalFrags-unAssignFrags)
print  "====================================================================="

내 파이썬 버전에 문제가 있습니까? 나는 문제를 파악하기에 충분한 파이썬을 모르기 때문에 어떤 도움을 주시면 감사하겠습니다!

  • 답변 # 1

    Python 3.X를 사용하고 계실 것입니다. 3.0부터 print 문은 함수가되었고, 함수를 호출 할 때처럼 괄호를 사용해야합니다. 따라서 표시하는 코드는 Python 3.X에서 작동하려면 다음과 같아야합니다.

    print("%-30s%d" % ("Total Reads",33))
    print("%-30s%d" % ("Total Tags",33))
    print("%-30s%d" % ("Total Assigned Tags",12))
    print("=====================================================================")
    
    

    인터넷에는 Python 2.X 코드의 상당 부분을 3.X로 변환하는 스크립트가 있습니다. 또는 다른 곳에서 코드를받은 경우 Python 3.X 버전을 사용할 수 있습니다.

  • 답변 # 2

    저는이 패키지가 파이썬 2로 작성되었다고 믿습니다. 이것은 인쇄 후에 ()를 넣지 않았고, 파이썬 3에서는 인쇄 후에 ()를 넣도록 변경했습니다. 파이썬 3을 사용하고 있습니다.

관련 자료

  • 이전 reactjs - 매개 변수를 사용하여 라우터 경로를 잘못된 구성 요소에 반응
  • 다음 rust - 문자열 내부에서 매크로 인수 추출