pycharm ssh interpter没有这样的文件或目录

时间:2015-12-18 15:56:58

标签: python ssh pycharm

我使用macbook pro 15作为本地机器,我有一台运行ubuntu 14.04的远程服务器

我想使用远程解释器来运行所有计算,但我想从本地计算机编写代码。

当我尝试使用pycharm运行一个简单文件时,我收到此错误:

ssh://donbeo@149.157.140.205:22/usr/bin/python3 -u /Users/donbeo/Documents/phd_code/prova.py
bash: line 0: cd: /Users/donbeo/Documents/phd_code: No such file or directory
/usr/bin/python3: can't open file '/Users/donbeo/Documents/phd_code/prova.py': [Errno 2] No such file or directory

Process finished with exit code 2

我看到很少有人报告同样的问题,但到目前为止我还没有找到一个好的答案。大多数问题确实是指较旧版本的pycharm。

很明显,该文件不在我的远程计算机中,因为我在本地使用pycharm创建它。我期待pycharm在本地和远程机器之间进行某种同步。

6 个答案:

答案 0 :(得分:27)

要在远程计算机上执行代码,您必须执行几个步骤

为项目定义远程解释器

  1. 转到文件 - >设置 - >项目:{project_name} - >项目口译员。
  2. 单击cog图标并选择Add Remote。
  3. 添加SSH主机凭据和解释器路径(在远程计算机上)。
  4. 因此,您应该在项目解释器下拉选择器中看到新位置,拼写为Python Version (ssh://login@host:port/path/to/interpreter)。包列表应填入记录。
  5. 定义部署设置

    1. 转到文件 - >设置 - >构建,执行,部署 - >部署
    2. 创建新的部署设置并填写ssh主机配置
      • 类型:SFTP
      • SFTP主持人:与译员主持人相同
      • 根路径:文件上传的路径
    3. 点击按钮"测试SFTP连接"检查提供的数据是否正确。
    4. 转到映射并配置本地路径和部署路径之间的映射。 部署路径相对于根路径 - /相当于/my/root/path/dir等同于/my/root/path/dir等。
    5. 部署代码

      1. 选择工具 - >部署 - >上传到{deployment settings name}
      2. 上传过程将在后台启动。等待上传完成。
      3. 运行代码

        1. 右键单击要运行的文件,然后选择"运行"。代码应该在远程计算机上运行。

答案 1 :(得分:1)

请确保将解释器选择为要编译的 SSH ,而不是要部署的 STFP

enter image description here

答案 2 :(得分:1)

有时候您可以正确设置所有内容(解释器,部署,路径映射等),但是PyCharm会继续尝试在远程计算机上使用您的本地路径。

如果发生这种情况,请尝试以下4个修复程序:

  1. 转到File->Invalid Caches / Restart

...如果问题仍未解决:

  1. 转到Preferences->Python Interpreter->Path Mappings并检查解释器的路径映射。他们应该大致像这样:

SSH Path Mappings

...同样,如果上一步不起作用:

  1. 转到Run->Edit Configurations...并检查路径映射是否正确:

PyCharm Path Mappings Run/Debug

  1. 您还可以尝试将 script 工作目录的本地路径替换为远程路径(就像您已经在该计算机上一样)。

pycharm ssh interpreter paths

  1. 如果您获得ModuleNotFoundError,但连接似乎正常,请转到Run->Edit Configurations...->Environment Variables,然后将项目的根路径添加到PYTHONPATH变量中。

答案 3 :(得分:1)

我正在运行 PyCharm 2018.3

问题:

首先,我没有 [Errno 2] No such file or directory 问题。然后我突然遇到了问题。

当我这样做时出现了问题:

  • 首选项 -> 项目:{project_name} -> 项目解释器
  • 我没有选择“单击齿轮图标并选择添加远程”,而是从下拉菜单中选择了我之前配置的解释器(之前工作正常)

通过执行上述步骤,我遇到了 [Errno 2] No such file or directory 问题。

原因是该文件夹不会自动同步到远程服务器(错误?),我也找不到将其配置为同步的方法。配置 DeploymentPath Mappings 确实有效,但人工劳动太多且容易出错。

解决办法:

我所要做的就是添加一个新的远程解释器,尽管之前已经存在相同的配置。 (为了安全起见,我确实删除了旧的 ssh 解释器和旧部署,还删除了 .idea 文件夹)然后一切都按预期进行。

  • 我不需要配置部署
  • 我不需要配置路径映射

答案 4 :(得分:0)

它可能是由以下原因之一引起的:

1。您没有在远程服务器上部署代码。

  • 确保在服务器上部署了最新版本的代码。您始终可以从工具->部署->上载到...,或使用Ctrl + Shift + Alt + x来部署代码。
  • 要设置部署路径,请转到文件->设置->构建,执行,部署->部署,然后输入远程服务器详细信息作为部署计算机。
  • 在“映射”选项卡中,确保已在您有权在其中读取和编辑文件的服务器上的某个位置定义了部署路径。

2。您无权读取和更改远程服务器上部署路径上的文件。

  • 返回“文件”->“设置”->“构建,执行,部署”->“部署”,然后在“映射”选项卡上更改部署路径。

答案 5 :(得分:0)

对于那些遇到“miniconda3/envs/gpu/bin/python: can't open file '///home/.../test.py”之类的问题,你可以直接运行python脚本文件pycharm 中的 locality 而不是在 pycharm 中运行服务器中的文件。