程序在pycharm中完美运行,在终端运行时给出错误答案

Posted

技术标签:

【中文标题】程序在pycharm中完美运行,在终端运行时给出错误答案【英文标题】:Program run perfectly in pycharm, gives incorrect answer when run in terminal 【发布时间】:2019-05-08 09:37:03 【问题描述】:

背景。计算机科学四年级学生。一年级蟒蛇。

问题:我在两个地方运行程序,Pycharm (IDE) 和使用终端的外部服务器。相同python的输出 在这两个东西上运行时文件是不同的。我需要它 相同,最好是正确的。 (是的,python 和 fasta 文件 在终端和 Pycharm 上是一样的)。

pycharm 和终端上的文件。

Pycharm 文件:

    chromosome9.fa Window.py 运行命令:python Window.py colour9.fa

终端文件

    chrom9.fa Window.py 运行命令:python Window.py chrom9.fa

Pycharm 文件的输出

There are 1255728 CpG pairs in this sequence.


[(63385200, 63385679), (64711680, 64712169), (65825370, 65825849), (131739850, 131740259), (134326260, 134326859)]

[(1092400, 1092839), (1366440, 1366849), (1549650, 1550099), (4068100, 4068849), (4326450, 4327169), (9216770, 9217449), (12647450, 12648029), (14136430, 14136909), (15126110, 15126569)
, (29073770, 29074689), (39586690, 39587139), (73198340, 73198929), (74377730, 74378379), (75009180, 75009779), (75341380, 75341889), (99970290, 99970769), (103436370, 103436809)]

getting average CpGIsland length for + strand
Average length: 491.0

getting average CpGIsland length for - strand
Average length: 564.2941176470588

终端程序的输出

('There are', 1255728, 'CpG pairs in this sequence.')

[]

[]


getting average CpGIsland length for + strand
Average length : 0

getting average CpGIsland length for - strand
Average length : 0

打印语句

print("There are",len(CG_indices),"CpG pairs in this sequence.")

两者的打印效果也不同,但我目前不在乎。

有人知道发生了什么吗?

【问题讨论】:

首先猜测是 Pycharm 使用的解释器与终端使用的解释器不同 如果没有代码的相关部分,第二次猜测基本上是不可能的。看看这里如何创建minimal reproducible example。 提示服务器上的 Python 2 与 IDE 中的 Python 3 可能是答案:在 Python 2 中执行 print(something, something_else) 时,会打印一个元组,而在 Python 3 中需要括号,因为 @ 987654326@ 是函数,不再是语句。 also prints different for both but I don't care about that currently. 你应该关心。这意味着 PyCharm 在 Python3.x 上运行,而在 Python 2.x 上运行服务器。这些非常不兼容,很可能是您问题的根源。 【参考方案1】:

天哪,你们都很好。是的,我在终端上运行了 python3 Window.py chrom9.fa 并且它工作,而当我运行 python Window.py chrom9.fa 时它没有工作。你们太棒了!谢谢 Ian Quah,Graipher,很奇怪。 (Aaaaaaaaaaaaa)(内心尖叫)

仍然不知道为什么会这样,但我现在知道这显然是一个非常严重的问题。

【讨论】:

Python 提示:如果您想知道运行的是哪个 Python 版本,可以在程序顶部添加这些行(两行除以 ;):import sys; print(sys.version)

以上是关于程序在pycharm中完美运行,在终端运行时给出错误答案的主要内容,如果未能解决你的问题,请参考以下文章

怎样在pycharm中用terminal运行代码

PyCharm 无法运行程序 C:\\Anaconda\\python.exe

如何在IPython控制台中默认运行文件而不是终端?

PyCharm导入pymysql包运行报错问题解决:No module named 'PyMySQL'

我在pycharm运行这个程序,为啥会这样啊,怎么解决?

如何在pycharm中调试从终端运行的代码