簡體   English   中英

在 Visual Studio Code 中使用奇異容器作為 python 解釋器

[英]Use singularity container as python interpreter in Visual Studio Code

我正在通過 VScode 遠程 ssh 連接到 HPC 環境,並希望直接在 VScode 中運行 python 代碼以進行測試。 我想將 python 解釋器設置為一個在執行時運行 python 的奇異容器。 這是通過在容器的 .def 文件中添加以下行來完成的:

%runscript
  exec python

手動執行容器確實會按預期啟動 python 會話。 但是,將 python 解釋器的路徑設置為 VScode 中的容器文件時,沒有任何反應。 它一直在詢問解釋器的路徑,就好像它沒有收到任何輸入一樣。 我嘗試在 VScode GUI 和 JSON 設置文件中設置默認路徑,如下所示:

{
    "python.defaultInterpreterPath":"~/path/to/singularity.sif"
}

雖然這種方法在這里被報道成功: Python code completion IntelliSense using Singularity container interpreter 還有: 如何在 Visual Studio 代碼中的奇異點/泊塢窗圖像中使用 python 解釋器

但是,我可以選擇不包含在奇點容器中的解釋器,它工作正常。 值得注意的是,如果我將奇點容器構建為沙箱並提供到沙箱中 python 的 bin 的路徑,它就可以工作。

知道這里可能出了什么問題嗎? 我在 Ubuntu 22.04 上使用最新版本的 VScode (v1.68.1) 和 Remote - SSH 擴展 (v0.82.1) 和 Python 擴展 (v2022.8.0); 奇點圖像是使用 (v3.5.3) 創建的。

我一直在嘗試解決相同的問題,但找到了替代解決方案。

因此,您實際上可以在主機上的奇異容器運行 vscode 服務器,而不是在主機上運行 vscode 服務器。 以下過程由@oschulz github 用戶從此評論中刪除。

  1. 確保您的 vscode 版本 >= v1.64。
  2. "remote.SSH.enableRemoteCommand": true放入你的 vscode 的settings.json
  3. 在您的本地計算機中,將如下內容添加到$HOME/.ssh/config
Host myimage1~*
  RemoteCommand singularity shell /path/to/image1.sif
  RequestTTY yes

Host somehost myimage1~somehost
  HostName some.host.somewhere
  User your_username_
  1. 測試它是否正常工作:嘗試ssh myimage1~somehost和類似python3 --version的東西
  2. 將此添加到您的settings.json
"remote.SSH.serverInstallPath": {
  "myimage1~somehost": "~/.vscode-container/myimage1",
}
  1. 在 vscode 中,使用 RemoteSSH 連接到主機,將主機名指定為myimage1~somehost

你可能想Kill VS Code Server On Host...如果某些東西不起作用。 只需在 vscode 的命令面板中輸入“kill”即可。

暫無
暫無

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

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