【问题标题】:"module not found" when trying to run python script remotely尝试远程运行 python 脚本时出现“找不到模块”
【发布时间】:2021-09-01 12:15:47
【问题描述】:

请多多包涵,我是个菜鸟,不知道自己在做什么。

我有一个想要在远程服务器上运行的 python 项目。它由我在要运行的主文件开头导入的 maaaany 文件组成。

有一个服务器我可以通过 ssh 进入并在其上运行,但如果我尝试运行

ssh [remote server] python3 <./my_script.py 

我收到“ModuleNotFoundError: No module named helperfunctions.py”,这是我尝试导入的第一件事。

我假设问题是我试图远程运行 my_script 而它访问的所有文件仍存储在本地。我该如何解决这个问题?

我需要非常基本的解释,因为我真的不知道这些 = (

谢谢!

【问题讨论】:

    标签: python ssh module remote-server modulenotfounderror


    【解决方案1】:

    你需要在服务器上安装你需要的python包,例如用pip

    【讨论】:

      【解决方案2】:

      您似乎正在导入本地可用的文件/模块/库,无论是在与 my_script.py 文件相同的文件夹中还是在环境中注册的路径中 - 搜索那个“helperfunctions.py”以查看如果它们不在同一个文件夹中,则它们在哪里,然后尝试将它们全部复制到您尝试运行 my_script.py 文件的服务器上的同一个文件夹中。

      【讨论】:

        【解决方案3】:

        该错误表明您在本地有一个额外的文件helperfunctions.py。您还需要在远程机器上发送此文件,并确保您的目录结构与本地类似 - 在您的工作环境中。

        您还需要检查是否安装了所有可能在脚本中调用的外部包。

        如果您没有在远程服务器中安装软件包,您可以这样做。

        在您的my_script.py 附近创建一个文件并将其命名为requirements.txt 在此文件中逐行添加您使用的包和版本。 例如它的文件内容可能是:

        Flask-Admin==1.5.4
        black==20.8b1
        blinker==1.4
        urllib3==1.25.11
        

        请注意,您可以添加不带版本说明符的包。 例如

        beautifulsoup4
        

        然后你就可以在你的远程服务器上执行了

        ssh [remote server] pip install -r requirements.txt
        

        这将安装您已声明到远程计算机文件中的所有包。

        当然你可以一个一个地去安装它们,上面不是强制性的。

        【讨论】:

          猜你喜欢
          • 2019-02-10
          • 1970-01-01
          • 2020-07-25
          • 2019-12-26
          • 2020-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多