簡體   English   中英

pycharm ssh interpter 沒有那個文件或目錄

[英]pycharm ssh interpter No such file or directory

我使用 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 在本地和遠程機器之間進行某種同步。

要在遠程機器上執行您的代碼,您必須執行幾個步驟

為您的項目定義遠程解釋器

  1. 轉到文件 -> 設置 -> 項目:{project_name} -> 項目解釋器。
  2. 單擊齒輪圖標並選擇添加遠程。
  3. 添加您的 SSH 主機憑據和解釋器路徑(在遠程機器上)。
  4. 因此,您應該在項目解釋器下拉選擇器中看到新位置,拼寫為Python Version (ssh://login@host:port/path/to/interpreter) 包列表應填充記錄。

定義部署設置

  1. 轉到文件 -> 設置 -> 構建、執行、部署 -> 部署
  2. 創建新的部署設置並填寫 ssh 主機配置
    • 類型:SFTP
    • SFTP 主機:與解釋器主機相同
    • 根路徑:上傳文件的路徑
  3. 單擊“測試 SFTP 連接”按鈕以檢查提供的數據是否正確。
  4. 轉到映射並配置本地路徑和部署路徑之間的映射。 部署路徑相對於根路徑- /相當於/my/root/path/dir相當於/my/root/path/dir等。

部署您的代碼

  1. 選擇工具 -> 部署 -> 上傳到{部署設置名稱}
  2. 上傳過程將在后台啟動。 等待上傳完成。

運行你的代碼

  1. 右鍵單擊要運行的文件並選擇“運行”。 代碼應該在遠程機器上運行。

確保您的解釋器被選擇為SSH用於編譯,而不是STFP用於部署。

在此處輸入圖片說明

有時您可以正確設置所有內容(解釋器、部署、路徑映射等),但 PyCharm 一直嘗試在遠程機器上使用您的本地路徑。

如果發生這種情況,請嘗試以下 4 個修復程序:

  1. 轉到File->Invalid Caches / Restart

...如果問題仍未解決:

  1. 轉到Preferences->Python Interpreter->Path Mappings並檢查解釋器的路徑映射 它們應該或多或少像這樣:

SSH 路徑映射

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

  1. 轉到Run->Edit Configurations...並檢查路徑映射是否正確:

PyCharm 路徑映射運行/調試

  1. 您還可以嘗試用遠程路徑替換腳本工作目錄的本地路徑(就好像您已經在該機器中一樣)。

pycharm ssh 解釋器路徑

  1. 如果您收到ModuleNotFoundError但連接似乎正常,請轉到Run->Edit Configurations...->Environment Variables並將您的項目的根路徑添加到PYTHONPATH變量。

我正在運行PyCharm 2018.3

問題:

首先,我沒有[Errno 2] No such file or directory問題。 然后我突然遇到了這個問題。

當我這樣做時出現了問題:

  • 首選項 -> 項目:{project_name} -> 項目解釋器
  • 我沒有選擇“單擊齒輪圖標並選擇添加遠程”,而是從下拉菜單中選擇了我之前配置的解釋器(之前工作正常)

通過執行上述步驟,我遇到了[Errno 2] No such file or directory問題。

原因是該文件夾不會自動同步到遠程服務器(錯誤?),我也找不到將其配置為同步的方法。 配置DeploymentPath Mappings確實有效,但人工勞動太多,容易出錯。

解決方案:

我所要做的就是添加一個新的遠程解釋器,盡管之前已經存在相同的配置。 (為了安全起見,我確實刪除了舊的 ssh 解釋器和舊部署,還刪除了 .idea 文件夾)然后一切都按預期進行。

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

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

1. 你沒有在遠程服務器上部署你的代碼。!

  • 確保您的代碼的最新版本部署在服務器上。 您始終可以從工具 -> 部署 -> 上傳到 ... 或使用 Ctrl + Shift + Alt + x 部署代碼。
  • 要設置部署路徑,請轉到文件 -> 設置 -> 構建、執行、部署 -> 部署,然后輸入遠程服務器詳細信息作為您的部署機器。
  • 在“映射”選項卡中,確保在服務器上您有權讀取和編輯文件的某個位置定義了部署路徑。

2. 您無權在遠程服務器上讀取和更改部署路徑上的文件。

  • 返回 File -> Settings -> Build, Execution, Deployment -> Deployment,並在 Mappings 選項卡上更改部署路徑。

對於那些遇到“miniconda3/envs/gpu/bin/python: can't open file '///home/.../test.py”這樣的問題的人,你可以在pycharm的locality中運行python腳本文件而不是在 pycharm 的服務器中運行文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM