首页 > 编程问答 >VSCode 远程容器默认 python 解释器

VSCode 远程容器默认 python 解释器

时间:2024-08-05 04:58:54浏览次数:9  
标签:python docker visual-studio-code conda vscode-remote

我有一个 dockerfile 来创建一个带有 miniconda 的容器并安装一些软件包(此处已修剪):

FROM continuumio/miniconda3:4.11.0

# install the necessary packages
RUN conda install -c conda-forge python=3.10.4 \
  ipykernel=6.13.0 \
  numpy=1.22.3

ENV APP_DIR /app
WORKDIR ${APP_DIR}

CMD /bin/bash

然后我使用 VSCode,将“remote-containers”扩展名设置为“在容器中打开文件夹”。

然后我打开一个 python 文件并按 F5 运行,但它无法识别某些包。 我必须单击 VSCode 右下角将解释器从“3.9.2 64-bit”(/usr/bin/python3) 更改为“3.10.4 ('base':conda)”(/opt/conda/bin /python).

有没有办法避免这最后一步? 也许向 devcontainer.json 文件添加一些内容? 到目前为止的主要想法是尝试修改 PATH 环境变量,以便它不会检测到 3.9.2 python,或者使用 dockerfile 中的命令实际删除 3.9.2 python 文件夹或链接,但这些想法似乎都一样很难看。


你可以通过在 devcontainer.json 文件中指定 Python 解释器的路径来避免每次都需要手动选择 Python 解释器。

以下是更新后的 devcontainer.json 文件示例:

{
    "name": "My Python Project",
    "dockerFile": "Dockerfile",

    // Set this to the path of your conda environment's Python interpreter
    "settings": { 
        "python.defaultInterpreterPath": "/opt/conda/bin/python"
    }
}

解释:

  1. "python.defaultInterpreterPath" : 这个设置告诉 VS Code 使用哪个 Python 解释器。
  2. "/opt/conda/bin/python" : 这是你 Conda 环境中 Python 解释器的默认路径。 如果你在 Dockerfile 中修改了路径,请相应地更新它。

其他建议:

  • 创建 .vscode 文件夹 : 为了避免与项目代码混淆,建议在项目根目录下创建一个名为 .vscode 的文件夹,并将 devcontainer.json 文件放在其中。
  • 使用 conda run : 为了确保你的脚本始终在 Conda 环境中运行,你可以在 Dockerfile 的 CMD 指令中使用 conda run 。 例如:

dockerfile CMD ["conda", "run", "-n", "base", "/bin/bash"]

这将使用 Conda 环境的 `base` 作为默认环境,并在其中运行 `/bin/bash`。

通过这些修改,VS Code 将自动使用你在 devcontainer.json 文件中指定的 Python 解释器,而无需每次都手动选择。

标签:python,docker,visual-studio-code,conda,vscode-remote
From: 72305777

相关文章

  • Python mido 未检测到 Raspberry Pi 中的键盘输入
    我有一个简单的python代码,它通过连接到PC的USB从音乐键盘获取MIDI信号,然后将命令发送到Arduino板以写入其数字输出。这工作得很好,没有任何问题。我尝试将相同的代码迁移到RaspberryPi,并进行一些特定于Pi的修改。我的代码如下:importpygameimportmidoimportr......
  • Python 初学者,遇到简单数学问题
    我必须做一个数学练习,要求我以10^-5的幅度构建√3。使用扫描方法和Python。我是法国人,所以我不知道是否“扫描”是正确的词。在练习的前面,我得到了一些提示:√3是方程x^2-3=0的解,我需要达到x*的点y是负数所以我尝试了这个:x=1y=1+10......
  • python字典
    字典概念一种数据结构,用于储存键值对键:值=key:value键会有对应的值,键是用来查找值的(字→键,释义→值)字典名={}要在字典里放入多个键值对,就用"{}"把它们包住,键和值之间用":"表示对应,键值对之间用","分隔。用法如果我们要获取某个键的值,在字典名后面跟方括......
  • python+flask计算机毕业设计健康管理系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着人们生活水平的提高和健康意识的增强,健康管理已成为社会关注的焦点。传统的健康管理方式往往依赖于纸质记录和医生的口头建议,这......
  • python+flask计算机毕业设计实验室信息化管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快速发展的科技时代,实验室作为科研与教学的核心场所,其管理效率和信息化水平直接影响到研究成果的质量和速度。传统的实验室管理方式......
  • python+flask计算机毕业设计中国诗词鉴赏网站(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景中国诗词作为中华文化的重要组成部分,承载着千年的历史与文化底蕴。从古至今,诗词一直是文人墨客表达情感、描绘景象的重要工具。然而,随着时......
  • python+flask计算机毕业设计装修公司管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着城市化进程的加速和人们生活水平的提高,装修行业迎来了前所未有的发展机遇。然而,传统装修公司管理方式存在诸多弊端,如信息不透明......
  • wsl docker里运行ollama并使用nvidia gpu的一些记录
     1、安装wsl2具体过程网上一搜一把,这里就先略过了,只有wsl2能用哈2、wsl里装docker,及相关配置装dockerwget https://download.docker.com/linux/static/stable/aarch64/docker-23.0.6.tgzcd/mydata/tmp/tar -zxvf docker-23.0.6.tgzmvdocker/*/usr/bin/mvdock......
  • Docker网络管理
    一、Docker网络实现原理Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器......
  • Python基础算法笔记
    整理自B站视频https://www.bilibili.com/video/BV1uA411N7c5递归1.汉诺塔问题#n个圆盘,从a经过b移动到cdefhanoi(n,a,b,c):ifn>0:#将n-1个圆盘从a经过c移动到bhanoi(n-1,a,c,b)#将最底层的圆盘从a移动到cprint("mov......