我正在从事一个数据科学项目,我有一个存储库。我想在初始化时在代码空间中创建一个 python 虚拟环境,以便我可以在 Jupyter 笔记本 (.ipynb) 中执行代码。我试图通过模拟此设置来做到这一点(https://www.youtube.com/watch?v=qLvAHhJAVlI)。在存储库中,我有一个 .devcontainer 目录,其中包含 devcontainer.json 和 Dockerfile。但是,当我重建代码空间时,找不到虚拟环境。我该如何继续?
这是 Dockerfile 的内容
ARG 变体 =“3.11” 来自 mcr.microsoft.com/vscode/devcontainers/python:${VARIANT}
定义要使用的 virtualenv 的路径 ARG VENV_PATH="/home/vscode/venv"
复制requirements.txt /tmp/pip-tmp/ 运行 su vscode -c "python -m venv /home/vscode/venv"
su vscode -c "${VENV_PATH}/bin/pip --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt"
rm -rf /tmp/pip-tmp
这是 devcontainer.json 的内容:
{ “名称”:“Python 3”, “建造”: { "dockerfile": "Dockerfile", “语境”: ”..”, “参数”:{ “变体”:“3.11”, 选项 "NODE_VERSION": "无" } },
“定制”:{ “vscode”:{ “设置”: { “python.defaultInterpreterPath”:“/home/vscode/venv/bin/python” },
"extensions": [ "ms-python.python", "ms-python.vscode-pylance", "GitHub.copilot" ] }
},
使用“postCreateCommand”在创建容器后运行命令。 // "postCreateCommand": "pip3 install --user -rrequirements.txt",
“remoteUser”:“vscode”, “特征”: { “azure-cli”:“最新” } }
我使用各种 python 解释器路径尝试了各种 devcontainer 设置。我期望一打开终端就可以初始化并访问虚拟环境。
只需将你的虚拟环境安装到你的源代码目录中,无论你使用的是 venv、poetry、hatch 等,都应该有一个配置选项。然后,当开发容器挂载源代码时,它还会挂载虚拟环境。我通常在
postCreateCommand
中安装依赖项,这将在重建时检测缓存/挂载并跳过安装。