Python IOError: [Errno 5] 输入/输出错误?

FZJ*_*FZJ 11 python

我在远程服务器上运行一个使用 nohup 的 python 脚本。

  • 首先,我使用 VPN 和 SSH 连接到远程机器
  • 其次,我使用以下命令运行 python 脚本:

    nohup python backmap.py mpirun -np 48 &

python 脚本包含以下几行:

frame = []
file_in = open("Traj_equil_prot.pdb", "r")
for line in file_in:
    if line.startswith('TITLE'):
        frame.append(line[127:134])

import os
for fileNum in range(631, 29969):
    os.system("./initram-v5.sh -f Traj_equil_prot_frame" +  str(fileNum) + ".pdb -o Traj_equilprot_aa_frame" + str(frame[fileNum]) + ".gro -to amber -p topol.top")
Run Code Online (Sandbox Code Playgroud)

脚本一整天都运行得很好。但现在它刚刚崩溃,当我再次尝试重新启动它时,出现以下错误:

回溯(最近一次调用最后一次):文件“”,第 1 行,在 IOError 中:[Errno 5] 输入/输出错误

该文件位于工作目录中。我尝试再次断开/连接,但仍然是同样的问题。我不知道我错过了什么。请问有什么帮助吗?

Omi*_*d N 18

我遇到了同样的问题,我曾经使用以下命令运行我的脚本:

python MY_SCRIPT.py &
Run Code Online (Sandbox Code Playgroud)

该脚本将在后台运行,输出将显示在终端上,直到您注销或退出。

通过注销,脚本仍在运行,但它的输出无处显示,因此,当脚本想要显示某些内容(例如调用print)时,将产生异常。


解决方案:

我已将输出通过管道传输到实际终端显示以外的其他地方:

python MY_SCRIPT.py >/dev/null &
Run Code Online (Sandbox Code Playgroud)

查看此链接了解更多详情:

/sf/answers/2676679701/

  • 或者我认为你可以使用 nohup 。`nohup python myscript.py &` (2认同)

FZJ*_*FZJ 0

我最终通过打开文件“file_in”、修改它(例如,仅在备注行中添加一个点)并保存更改来解决了问题。