【问题标题】:Error while running Python script via SSH通过 SSH 运行 Python 脚本时出错
【发布时间】:2018-11-17 11:39:06
【问题描述】:

我正在尝试通过 ssh local 为 Linux 机器远程运行 Python 脚本,但是当我的脚本正在读取 txt 文件时出现错误,该脚本在我的 Python IDE 上运行良好且没有错误。

我正在使用ssh root@ip_adress python2 < script.py 运行脚本。

我正在读取 txt 文件的脚本的一部分:

import os
import smtplib

with open("file.txt") as fp:
     conteudo = fp.readlines()

conteudo = [linhas.strip() for linhas in conteudo]

错误:

Traceback (most recent call last):
File "<stdin>", line 4, in <module>
IOError: [Errno 2] No such file or directory: 'file.txt'

【问题讨论】:

  • 您将不得不重写问题,“脚本在终端外运行良好”在这里应该是什么意思? file.txt 是否真的存在于远程机器上?
  • @tink file.txt 只在我的电脑上。我需要在我的服务器上保存该文件吗?
  • 当然。通过 ssh 执行 python 脚本不会让它访问调用它的机器上的文件,它只能看到它正在运行的机器上的东西。
  • P.S.:看到你使用ssh root@ 让我胃痛。 ;)
  • @tink 有没有办法让它使用我电脑上的文件?我应该用什么来代替 ssh root@?我对这个 xD 很陌生

标签: python linux ssh


【解决方案1】:

主要问题是 file.txt 仅存在于我的计算机上,因此要使其正常工作,我需要直接连接到我的服务器以与其共享我的文件系统,但这是不安全的。所以我决定使用scp file.txt root@ip_adress:/path/where/the/file/is/going/to 将file.txt 传输到我的服务器,然后我不得不将“with open() as”函数中的路径更改为我的文件要到达的路径。之后,我能够毫无错误地执行脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多