24小时热门版块排行榜    

查看: 2296  |  回复: 12

旭日and东升

新虫 (小有名气)

[求助] linux下运行python报错,不知原因 已有1人参与

我写了一个小python程序,在windows下运行的很好,但放在linux环境下却报错了。不知道什么原因。
window下的python版本是2.7;而linux下的python版本是2.4。
报错代码如下:
Traceback (most recent call last):
  File "align_new.py", line 213, in ?
    score=smith_waterman(seq,seq[j],BLOSUM62)
  File "align_new.py", line 61, in smith_waterman
    score_diagonal=score[i-1][j-1]+match_score(seq1[i-1],seq2[j-1],BLOSUM62)
  File "align_new.py", line 34, in match_score
    y=alphabet[beta]
KeyError: '\r'
这个错误看不懂,语法缩进都没问题,在window下也能正常运行,求各位大神指导一下,到底哪儿出了问题?
谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


xzhdty(金币+1): 欢迎讨论交流 2011-10-22 23:12:00
不知道是不是因为windows下回车是"\r\n"而linux下是"\n"的缘故?楼主修改一下试试
2楼2011-10-22 20:55:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-10-23 02:37:45
KeyError: '\r'
看报错,明显是文件换行符差异导致
建议:在win下用pspad等编辑器打开,把换行符从window换为linux的就行了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2011-10-23 00:11:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

avhg

木虫 (著名写手)

幻象

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-10-28 23:22:41
我在windows下运行的python程序拿到Linux下咋可以呢?也没修改换行符额。。。 是不是python版本不一样?有时候我拿python26运行可以,python3.1就不行。。。 说print函数怎么怎么样。。用perl的飘过。。。
只要坚持,胜利是迟早的事。
4楼2011-10-23 14:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

avhg

木虫 (著名写手)

幻象


jjdg(金币+1): 感谢参与 2011-10-24 01:17:25
你把linux上版本也更新到2.7试试啊。
只要坚持,胜利是迟早的事。
5楼2011-10-23 14:20:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军


jjdg(金币+1): 感谢参与 2011-10-24 01:17:32
引用回帖:
4楼: Originally posted by avhg at 2011-10-23 14:18:53:
我在windows下运行的python程序拿到Linux下咋可以呢?也没修改换行符额。。。 是不是python版本不一样?有时候我拿python26运行可以,python3.1就不行。。。 说print函数怎么怎么样。。用perl的飘过。。。

py2.x到py3改动很大,print函数都改成print('****')这种了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
6楼2011-10-23 23:41:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gaoyang636

木虫 (著名写手)

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-10-28 23:22:59
嗯,是换行的问题,用 dos2linux 处理下吧
7楼2011-10-24 09:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

avhg

木虫 (著名写手)

幻象

引用回帖:
6楼: Originally posted by libralibra at 2011-10-23 23:41:56:
py2.x到py3改动很大,print函数都改成print('****')这种了

嗯,学习了。Thank you~
另外楼上的方法是不是仅是修改linux挂载路径问题呢?诸如换行之类貌似不行吧?
只要坚持,胜利是迟早的事。
8楼2011-10-24 13:54:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

avhg

木虫 (著名写手)

幻象


微尘、梦想(金币+1): 谢谢参与 2011-10-24 17:48:05
引用回帖:
8楼: Originally posted by avhg at 2011-10-24 13:54:04:
嗯,学习了。Thank you~
另外楼上的方法是不是仅是修改linux挂载路径问题呢?诸如换行之类貌似不行吧?

鉴于这个疑问,是我错了。臆测不行啊。dos2unix处理文本的话是可以的.浅薄了。。。
参考资料 http://www.cnblogs.com/younes/archive/2010/06/05/1752123.html
只要坚持,胜利是迟早的事。
9楼2011-10-24 14:01:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nodexy

新虫 (初入文坛)

【答案】应助回帖

★ ★
余泽成(金币+2): 谢谢参与应助!欢迎常来程序语言版! 2011-10-28 23:23:24
1 LZ可能是linux新手和python新手,呵呵,这种问题是新手最常遇到的;
2 linux和windows对换行符的定义不同,这些在学习linux时就该了解,/r和/n的具体含义也最好清楚;
3 python是我个人很推荐的语言,搞生物信息现在都推荐学python,perl只要能看懂别人的代码即可,呵;当然这不是语言之争,只是建议;完全可以二者都学,然后自己选择适合的
80后非典型跨界程序猿 科学男 数学男
10楼2011-10-28 01:04:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 旭日and东升 的主题更新
信息提示
请填处理意见